Problem mit Endlosschleife in Klasse
-
Ich versuche das gerade als Klasse zu implementieren. (Dass dieser Code zu einem großen Teil aus C-Code besteht, wird noch geändert). Wieso geht das Fenster sofort wieder zu? Die Endlosschleife scheint nicht zu funktionieren...
HEADER:
#ifndef _SERVER_ #define _SERVER_ #include <iostream> #include <string> #include <winsock.h> using namespace std; class Server { private: SOCKET s, c; int addr_len; struct sockaddr_in addr; public: Server() {}; //Konstrukor ~Server(){}; // Destruktor int SocketStart(); }; //SEMIKOLON NICHT VERGESSEN!!! int Server::SocketStart() { WSADATA wsa; if (WSAStartup(MAKEWORD(1, 1), &wsa)) { printf("WSAStartup() failed, %lu\n", (unsigned long)GetLastError()); return EXIT_FAILURE; } return 0; //SOCKET ANLEGEN s = socket(PF_INET, SOCK_STREAM, 0); if (s == -1) { perror("socket() failed"); return 1; } //CONNECTEN addr.sin_addr.s_addr = INADDR_ANY; addr.sin_port = htons(7000); addr.sin_family = AF_INET; //BINDEN if (bind(s, (struct sockaddr*) &addr, sizeof(addr)) == -1) { perror("bind() failed"); return 2; } //ZUHÖREN if (listen(s, 3) == -1) { perror("listen () failed"); return 3; } //WARTEN for(;;) { addr_len = sizeof(addr); c = accept(s, (struct sockaddr*)&addr, &addr_len); if (c == -1) { perror("accept() failed"); continue; } printf("Client from %s\n", inet_ntoa(addr.sin_addr)); closesocket(c); } closesocket(s); } #endif _SERVER_CPP Datei:
#include "Klasse.h" #define BUF_SIZ 4096 int main() { Server a; a.SocketStart(); char buffer[BUF_SIZ]; return 0; }
-
Guck mal Zeile 31 an...
-
SeppJ schrieb:
Guck mal Zeile 31 an...
Gelöst, danke! Nächstes mal debugge ichs -.- versprochen....