私はSunのJavaチュートリアルを実行しています。私はソケットについてのレッスン中です。単純なスレッドサーバーの場合、次のコードがあります。スレッドサーバーは、より多くの着信接続のためにポストで引き続きリッスンしますか?
import java.net.*;
import java.io.*;
public class KKMultiServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
boolean listening = true;
try {
serverSocket = new ServerSocket(4444);
} catch (IOException e) {
System.err.println("Could not listen on port: 4444.");
System.exit(-1);
}
while (listening)
new KKMultiServerThread(serverSocket.accept()).start();
serverSocket.close();
}
}
サーバーは「受信接続をもっと引き続き」と言われています。私はちょうどそれが可能である方法を理解していません。 serverSocket.accept()
は、Socket
というオブジェクトを作成します。このオブジェクトは、チュートリアル「同じローカルポートににバインドされています。さて、サーバがクライアントと通信して、同じポート上のより多くの着信接続を待ち受けている可能性はありますか?私の知る限り、ポートがいくつかの接続に使用されていると、ポートはブロックされ、より多くのものに使用することはできません。
ここで何が間違っていますか?
重複:http://stackoverflow.com/questions/489036/how-does-the-socket-api-accept-function-work – Kevin