WinSock, TCP Max Verbindungen



  • Hi,

    ich habe bei meinem TCP Server die maximale Verbindungsanzahl beim Aufruf der Funktion listen() auf z.B. 1 gesetzt. Trotzdem können sich mehr als nur 1 Client mit dem Server verbinden.

    relevanter TCP Server Code:

    SOCKADDR_IN Addr;
    memset(&Addr, 0, sizeof(SOCKADDR_IN));
    Addr.sin_family = AF_INET;
    Addr.sin_port = htons(_INT(port));
    Addr.sin_addr.s_addr = INADDR_ANY;
    
    if(bind(Server, (SOCKADDR*)&Addr, sizeof(SOCKADDR_IN)) != SOCKET_ERROR)
    {
    	if(listen(Server, 1) != SOCKET_ERROR)
    	{
    		return Server;
    	}
    }
    

    Auch wenn sich bereits ein Client verbunden hat (accept() hat also bereits einen Verbindungs Socket zurückgegeben) und die Verbindung zu dem Client noch besteht, können sich problemlos weitere Clients verbinden?!

    Hab ich da was falsch verstanden oder ist das normal?

    Vielen Dank für eure Hilfe!



  • MSDN: "The maximum length of the queue of pending connections."

    Es geht also um die Verbindungen, die noch nicht mit accept angenommen worden sind.



  • Ah ok verstehe. Hab wohl das pending überlesen...

    Vielen Dank für die Klarstellung!


Anmelden zum Antworten