ho imparato un esempio di utilizzo di prese. In questo esempio, un client invia una richiesta a un server di aprire un socket e quindi il server (l'ascolto di una porta specifica) si apre un socket e tutto è andato bene, socket viene "aperto" da entrambi i lati (client e server).Posso chiudere e riaprire un socket?
ma non è ancora chiaro per me come flessibile è questa roba. Ad esempio, è possibile per il cliente per chiudere una presa aperto (da entrambe le estremità) e riaprirlo nuovamente (a condizione che il server mantiene la presa aperto).
E 'possibile per il server di "sapere" che una presa è stata chiusa sul lato client? È possibile che il client sappia che un socket è stato chiuso sul lato server?
aggiunto: più
Una cosa importante per me. Cosa succede se un'applicazione (nessun server o client) si blocca, terminato in modo anomalo, ucciso? Chiuderà tutte le prese aperte sul lato dell'applicazione?
aggiunte 2:
se un'applicazione su un lato della presa è spento (ucciso, chiuso, terminato) e quindi viene riacceso (sullo stesso indirizzo IP e la stessa porta). Dovremmo creare un nuovo socket tra le due applicazioni o siamo in grado di utilizzare la vecchia presa (creati prima del crash).
Non capisco la procedura. Ad esempio il client chiude il socket e il server non lo fa. Il client prova ad aprire un nuovo socket (dalla stessa porta e dall'indirizzo IP) ma il server dice: scusa è impossibile visto che esiste già un socket! E poi il cliente dice: bene esiste per te, ma l'ho chiuso e non posso riaprirlo di nuovo! – Roman
Il server deve elaborare socket in thread diversi. Non dovrebbe essere un problema aprire i socket (cioè accettare) sulla stessa porta. – Roman
ah, che brutto pasticcio con soprannomi. – Roman