Hej Udviklere
Jeg har et problem med winsock. Jeg har sat en server forbindelse op, så flere klienter kan oprette forbindelse til den samme server på en gang. Men problemet opstår, når jeg gemmer de forskellige sockets, i en linkedlist. Den gemmer den samme socket. Det som om "accept()" ikke overskriver den midlertidige socket.
- SOCKET TMPClientSocket; //Midlertidig socket
- sockaddr_in TMPClientInfo;
-
- if (IsHost())
- {
- while (true)
- {
- while (numberofclients < maxplayers)
- {
- TMPClientSocket = accept(ServerSocket, (sockaddr*)&TMPClientInfo, &ClientLenght); //her tror jeg problemet opstår.
-
- if (TMPClientSocket != INVALID_SOCKET)
- {
- setsockopt(TMPClientSocket, SOL_SOCKET, SO_SNDTIMEO, (char*)&iOptVal, iOptLen);
- setsockopt(TMPClientSocket, SOL_SOCKET, SO_RCVTIMEO, (char*)&iOptVal, iOptLen);
- ClientSocket->Add(&TMPClientSocket); //Gemmer socket i linked list
- ClientInfo->Add(&TMPClientInfo);
- numberofclients++;
- cout << "Client attached" << endl;
- cout << numberofclients << endl << endl;
- }
- }
- }
-
- return true;
- }
På forhånd tusind tak for hjælpen
M.V.H.
Peter Emil Jensen
Indlæg senest redigeret d. 02.11.2009 17:53 af Bruger #14541