Entra

View Full Version : [C, sockets] dopo una accept


71104
07-11-2006, 18:40
ho un dubbio, credo che molti qui sapranno rispondermi rapidamente senza che vado a spulciarmi MSDN. nei sockets di Berkeley è possibile chiamare nuovamente listen su un socket sul quale si è fatta una accept, ovvero è possibile riutilizzare uno stesso socket già messo precedentemente in listen per ascoltare nuovamente sulla stessa porta? e su Winsock è lo stesso?

okay
07-11-2006, 18:59
ho un dubbio, credo che molti qui sapranno rispondermi rapidamente senza che vado a spulciarmi MSDN. nei sockets di Berkeley è possibile chiamare nuovamente listen su un socket sul quale si è fatta una accept, ovvero è possibile riutilizzare uno stesso socket già messo precedentemente in listen per ascoltare nuovamente sulla stessa porta? e su Winsock è lo stesso?

mangiatore di quiche che non sei altro :fagiano:

si

prima devi chiudere il socket.
closesocket(socket[i]);

poi lo azzeri

socket[i]=0;

questo sopra se lavori su un for fisso per esempio 10 socket dove chi si logga prende il numero che trova libero.



void FreeSocketInformation(DWORD Index)
{

DWORD i;

for (i = Index; i < TotalSockets; i++)
{
Socket[i] = Socket[i + 1];
}

closesocket(socket[TotalSockets-1]);//lo chiudi
Socket[TotalSockets-1]=0; //lo azzeri
TotalSockets--;
}


questo sopra hai un ciclo a runtime dei socket collegati, chi si disconnette si fà in modo di scalare i socket