반응형
https://docs.oracle.com/javase/8/docs/api/java/net/ServerSocket.html
ServerSocket(서버 소켓)
- 서버 소켓을 구현하는 Java 네트워크 프로그래밍 클래스
- 네트워크에서 들어오는 요청을 기다리고, 요청을 처리한 후 결과를 요청자에게 반환하는 역할
- SocketImpl 클래스의 인스턴스를 사용하여 실제 작업 수행
- 애플리케이션에서 소켓 구현을 구성하기 위해 소켓 팩토리를 변경할 수 있음
용어
- backlog(백로그) : 서버 소켓이 클라이언트의 연결 요청을 얼마나 대기할 수 있는지를 나타내는 값. 서버가 한 번에 처리할 수 없는 연결 요청이 있을 때, 그 요청들을 대기열에 쌓아 두는 개념. 대기할 수 있는 최대 연결 수를 지정하며, 백로그가 50이면 서버는 최대 50개의 연결 요청을 대기시킬 수 있는 것
Constructor(생성자)
생성자 | 설명 |
---|---|
ServerSocket() | 연결되지 않은 서버 소켓을 생성 |
ServerSocket(int port) | 지정된 포트에 바인딩된 서버 소켓을 생성 |
ServerSocket(int port, int backlog) | 지정된 로컬 포트 번호에 바인딩된 서버 소켓을 생성하며, 지정된 백로그를 설정 |
ServerSocket(int port, int backlog, InetAddress bindAddr) | 지정된 포트, 백로그, 로컬 IP 주소에 바인딩된 서버 소켓을 생성 |
Method(메소드)
연결 및 바인딩
메소드 | 설명 |
---|---|
accept() | 이 소켓에 대한 연결을 기다리고 이를 수락 |
bind(SocketAddress endpoint) | 특정 주소(IP와 포트)에 서버 소켓을 바인딩 |
bind(SocketAddress endpoint, int backlog) | 특정 주소에 서버 소켓을 바인딩하고 백로그를 설정 |
close() | 서버 소켓을 닫음 |
소켓 정보 조회
메소드 | 설명 |
---|---|
getChannel() | 이 소켓과 연결된 유일한 ServerSocketChannel 객체 반환 |
getInetAddress() | 서버 소켓의 로컬 주소 반환 |
getLocalPort() | 이 소켓이 수신하는 포트 번호 반환 |
getLocalSocketAddress() | 이 소켓이 바인딩된 주소 반환 |
getReceiveBufferSize() | SO_RCVBUF 옵션의 값을 반환(이 서버 소켓에서 수락된 소켓에 사용될 버퍼 크기) |
getReuseAddress() | SO_REUSEADDR 옵션이 활성화되었는지 여부를 반환 |
getSoTimeout() | SO_TIMEOUT 설정값을 반환 |
소켓 설정 및 옵션
메소드 | 설명 |
---|---|
setPerformancePerferences(int connectionTime, int latency, int bandwidth) | 이 서버 소켓의 성능 설정 |
setReceiveBufferSize(int size) | 이 서버 소켓에서 수락된 소켓의 기본 제안 수신 버퍼 크기 설정 |
setReuseAddress(boolean on) | SO_REUSEADDR 소켓 옵션을 활성화/비활성화 |
setSocketFactory(SocketImplFactory fac) | 애플리케이션의 서버 소켓 구현 팩토리 설정 |
setSoTimeout(int timeout) | SO_TIMEOUT을 지정된 시간(밀리초 단위)으로 설정 |
소켓 상태 확인
메소드 | 설명 |
---|---|
isBound() | 서버 소켓이 바인딩되었는지 여부를 반환 |
isClosed() | 서버 소켓이 닫혔는지 여부를 반환 |
기타
메소드 | 설명 |
---|---|
toString() | 이 소켓의 구현 주소 및 포트를 문자열로 반환 |
반응형
'JAVA > Java Platform, Standard Edition' 카테고리의 다른 글
[공식 문서] 자바 클라이언트 소켓(Client Socket) 완벽 정리 : 개념, 생성자, 주요 메소드 (0) | 2025.02.12 |
---|---|
[공식 문서] 자바 스레드(Thread) 완벽 가이드 : 생성부터 동기화까지 (0) | 2025.02.10 |
[공식 문서] 자바 날짜/시간 포맷(DateFormat) 변환 완벽 가이드 (0) | 2025.02.10 |
[공식 문서] 자바 Timer 클래스 완벽 가이드 : 백그라운드 작업 예약과 반복 실행 (0) | 2025.02.10 |
[공식 문서] 멀티스레딩 구현을 위한 기본 인터페이스(Runnable) (0) | 2025.02.10 |