accept() 메소드는 어떤 원리로 클라이언트의 접속을 대기하죠
햇햇
try
{
serverSocket = new ServerSocket(7777);
System.out.println(서버가 시작되었습니다.);
while(true) {
socket = serverSocket.accept();
System.out.println([+socket.getInetAddress()+:+socket.getPort()+]+에서 접속하였습니다.);
ServerReceiver thread = new ServerReceiver(socket);
thread.start();
}
}
catch (Exception e)
{
e.printStackTrace();
}
이런 소스가 있을때 serverSocket.accept(); 실행을 멈추고 클라이언트의 연결요청을 기다린다고 했는데
public Socket accept() throws IOException {
if (isClosed())
throw new SocketException(Socket is closed);
if (!isBound())
throw new SocketException(Socket is not bound yet);
Socket s = new Socket((SocketImpl) null);
implAccept(s);
return s;
}
소스어느부분에 실행을 멈추고 대기한다고 하는데 어는부분에 그게 구현되있는지모르겠습니다
-
독특한
답변감사합니다
-
늘빈
socket = serverSocket.accept();
이 부분에서 기다리고 있습니다.
마치 읽기를 기다리는 상태와 같은 상태죠.