Zdravim,
chtel bych se zeptat jak presne funguji sockety ? Jde o to, ze programuji jednoduchy chatovaci program (pouzivam jednoduche blokovaci sockety, nebo jak se jim rika).
Jedna aplikace je server a druha klient. Pokud otevru obe aplikace, vse funguje jak ma, muzu posilat zpravy atd. Problem nastane pokud zavru klienta. Pokud ho znova otevru, jiz se k serveru nepripoji.
Jde mi vlastne o to, pokud zavru klienta, abych take nemusel restartovat server.
Tady je kousek pseudokodu ze zdrojaku serveru:
//Inicializace WSA...
SOCKET Socket;
while(true)
{
// Vytvoreni socketu pomoci funkce socket
SOCKADDR_IN SockAddr;
// Nastaveni struktury SockAddr
// Bind socketu na port a zavolani funkce listen(...)
// Nejaky dalsi kod, posilani zprav atd
// Klient poslal zpravu, ze byl ukoncen:
cout << "Pockat na dalsi pripojeni nebo ukoncit program ? (y/n)" << endl;
char ans[2];
cin.getline(ans, 2);
if(strcmp(ans, "y")) // pokud ano, opakovat smycku while(true)
break;
closesocket(Socket);
}
Pri pokusu o opetovne vytvoreni socketu a zavolani funcek bind(...) hlasi chybu, ze port je jiz pouzivan. Co s tim ?
Predem diky za jakoukoliv radu