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;
    }
    

  • Mod

    Guck mal Zeile 31 an...



  • SeppJ schrieb:

    Guck mal Zeile 31 an...

    Gelöst, danke! Nächstes mal debugge ichs -.- versprochen....


Anmelden zum Antworten