2011-02-23 13 views
5

ho questo frammento di codice:Java Socket e ServerSocket Problema

ServerSocket serversocket=new ServerSocket(DEFAULTPORT); 
serversocket.setSoTimeout(1000); 
Socket socket=serversocket.accept(); 
  1. Vuol chiudere l'oggetto serversocket anche influenza lo stato dell'oggetto socket?

  2. Se chiudo l'oggetto serversocket posso ancora utilizzare l'oggetto socket per i miei flussi?

+0

eh? cosa ha a che fare con la mia domanda? –

risposta

3

Le brevi risposte sono:

1) non

2) sì

La risposta è più:

Le attese ServerSocket per i client di connettersi (aspetta nel suo metodo di accettazione). Quando c'è un client, il metodo accept restituisce, in particolare restituisce un oggetto Socket che rappresenta quindi l'endpoint del server della connessione server-client. Se il server chiude il suo socket del server, non ascolta più (non accetta più nuovi client) ma i client con cui ha già una connessione socket non sono interessati.

Il tuo codice non è "sbagliato" di per sé, tuttavia è solo in grado di accettare un singolo client e solo se è collegato entro 1000 millisecondi.

Qui è un'introduzione incluso il codice di esempio:

http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html

+0

super grazie! i codici erano solo per chiarimenti in modo che i lettori possano capire cosa intendevo. –

Problemi correlati