CODEDRAGON ㆍDevelopment/Java
ServerSocket 클래스의 주요 메서드
메소드 |
설명 |
Socket accept() |
· 클라이언트의 Socket객체가 생성될 때까지 블로킹되는 메소드 · 클라이언트의 Socket객체가 생성되면 서버에서 클라이언트와 통신할 수 있는 Socket객체를 반환 |
void close() |
· ServerSocket객체 닫기 |
int getLocalPort() |
· ServerSocket객체가 청취하고 있는 포트번호를 반환 |
int getSoTimeout() |
· ServerSocket클래스의 accept()메소드가 유효할 수 있는 기간을 밀리세컨드단위로 반환 · 값이 0이면 무한대를 의미 |
boolean isClosed() |
· ServerSocket객체의 닫힌 상태를 반환 · ServerSocket이 닫힌 경우 true를 반환하고 · 그렇지 않은 경우에는 false를 반환합니다. |
boolean isBound() |
서버 소켓 객체가 포트에 바인딩되었는지 여부를 알려줍니다. |
void setSoTimeout(int timeout) |
· ServerSocket클래스의 accept()메소드가 유효할 수 있는 시간을 밀리세컨드로 설정 · 설정된 시간이 지나면 java.net.SocketTimeoutException예외가 발생하며 이 예외가 발생하더라도 ServerSocket객체는 계속 유효합니다. |
ServerSocket 연결받기
· 서버 소켓의 주요 작업은 들어오는 연결 요청들을 수신하고 각 요청으로 부터 Socket 객체를 생성하는 역할을 하며 ServerSocket 클래스의 accept() 메서드에 의해 수행됩니다.
· 클라이언트에서 들어오는 요청이 없다면 요청이 올 때까지 accept() 메서드는 블럭화 되거나 타임아웃이 되면 종료됩니다.
accept()
Socket accept() throws IOException,SecurityException; |
· accpet() 메서드는 일반적으로 무한루프로 처리합니다.
· 클라이언트의 TCP 요청이 오면 accept() 메서드를 통해 Socket 객체를 생성한 후에 다른 클라이언트의 TCP 요청을 기다리게 되므로 accept() 메서드를 무한루프로 처리해야 합니다.