2011-02-23 13 views
5

私はこのコードスニペットを持っている:JavaのソケットとServerSocketを発行

ServerSocket serversocket=new ServerSocket(DEFAULTPORT); 
serversocket.setSoTimeout(1000); 
Socket socket=serversocket.accept(); 
  1. serversocketオブジェクトもsocketオブジェクトの状態に影響を与え閉じていますか?

  2. serversocketオブジェクトを閉じると、私はまだストリームにsocketオブジェクトを使用できますか?

+0

でしょ?それは私の質問と何が関係していますか? –

答えて

3

短い答えは、次のとおりです。

1)無

2)はい

長い答えは:

クライアントが接続するためのServerSocketを待ちます(彼は彼の受け入れ方法で待っている)。クライアントが存在する場合、acceptメソッドが返されます。具体的には、ソケットオブジェクトが返されます。ソケットオブジェクトは、サーバとクライアントの接続のサーバのエンドポイントを表します。サーバがサーバソケットを閉じると、彼はもはやリッスンしません(彼はもはや新しいクライアントを受け入れません)が、すでにソケット接続を持っているクライアントは影響を受けません。

あなたのコードはそれ自体 "間違った"ものではありませんが、単一のクライアントを受け入れることができ、1000ミリ秒以内に接続した場合にのみ可能です。導入は、サンプルコードを含む。ここで

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

+0

超感謝!コードは読者が私が何を意味するのか理解できるように、明確化のためのものでした。 –

関連する問題