Prüfen, ob Client noch verbunden.



  • Ich habe einen Client und einen Server geschrieben. Der Client verbindet sich auch wunderbar mit ihm... Wenn sich die IP-Adresse allerdings ändert, denkt der Client immer noch, er sei mit dem Server verbunden. Was also tun, um diesen Fehler zu beseitigen?

    Danke!

    :xmas1: :xmas2:



  • DWORD WINAPI TESTSOCKET(PVOID sock)
    {
    	SOCKET s;
    	s = *(SOCKET*)sock;
    	DWORD WSA_ErrorCode = 0;
    	int bytes_received = 0;
    	char buf[BUF_SIZ];
    	while(1)
    	{
    		bytes_received = recv( s, buf, BUF_SIZ, 0 );
    		if((bytes_received == SOCKET_ERROR) || (bytes_received == 0))
    		{
    			closesocket(s); // socket schliessen         
    			s=INVALID_SOCKET; // seinen platz wieder freigeben
    			break;
    		}
    		Sleep(5000);
    	}
    	return 0;
    }
    

    Soweit bin ich bisher... Problem hierbei ist, dass das bei meinem Server läuft. Dieser wartet also 2 mal mit recv(). Wie kann man das am besten lösen?
    :xmas1:



  • 2 recv()'s warten (blocken) gleichzeitig... Einer in dem Thread und der andere im normalen Programmverlauf... DIese behindern ja sich wahrscheinlich...


Anmelden zum Antworten