JAVA/JAVA
Java | Network (2) ServerSoket & Socket
pathas
2020. 2. 11. 17:42
ServerSocket & Socket Class
java.net.[Server]Socket
자바에서 서버-클라이언트 프로그램 작성을 위해 제공하는 클래스
ServerSocket
서버 측에서 실행되는 애플리케이션을 작성하기 위해 사용하는 클래스
ServerSocket 생성자
생성자 | 설명 |
---|---|
ServerSocket(int port) | 클라이언트 요청을 받아들일 포트(port)번호를 가지고 ServerSocket 객체 생성 포트 번호는 1024~49151 사이에서 몇 가지 번호를 제외하고 사용 가능 |
ServerSocket Method
메소드 | 설명 |
---|---|
Socket accept() | 클라이언트 요청을 받아서 Socket 객체 생성 후 반환 |
InetAddress getInetAddress() | 현재 서버 소켓의 지역 주소 정보를 InetAddress 객체로 반환 |
void close() | 서버 소켓을 닫음 |
Socket
서버로 접속할 클라이언트 프로그램에서 사용하는 클래스
Socket 생성자
생성자 | 설명 |
---|---|
Socket(String host, int port) | 연결할 host(접속할 서버 IP 주소)와 port(접속 포트 번호)로 소켓 생성 |
Socket(InetAddress addr, int port) | 접속할 서버의 InetAddress 객체와 port 번호로 소켓 생성 |
Socket Method
메소드 | 설명 |
---|---|
InputStream getInputStream() | 현재 소켓과 관련된 InputStream 객체 반환 |
OutputStream getOutputStream() | 현재 소켓과 관련된 OutputStream 객체 반환 |
void close() | 소켓 닫기 |
InetAddress getInetAddress() | 소켓에 연결된 원격 컴퓨터의 InetAddress 객체 반환 |
InetAddress getLocalAddress() | 소켓에 연결된 지역 컴퓨터의 InetAddress 객체 반환 |
int getPort() | 소켓에 연결된 컴퓨터의 포트 번호 반환 |
int getLocalPort() | 소켓에 연결된 지역 컴퓨터의 포트 번호 반환 |
TCP 소켓 / UDP 비교
TCP | UDP |
---|---|
상호 연결된 상태에서 통신하는 방법이기 때문에 높은 신뢰성이 요구되는 어플리케이션에 적합 |
User Datagram Protocol의 약자로 TCP 소켓에 비해 신뢰성과 안정성 측면에서 뒤떨어짐 |
네트워크에 부담을 주기 때문에 신뢰성이 충족되지 않거나 많은 양의 데이터를 전송하는 경우 부적합 |
연결을 설정하지 않으므로 네트워크에 부담을 주지 않음 |
서버 소켓 및 소켓 클래스에 대해 간단히 살펴보았습니다.
서버 소켓 클래스는 서버에서 소켓의 접속만을 관리하며
소켓 클래스가 서버와 클라이언트간 직접적인 통신을 담당한다고 할 수 있습니다.
예제로는 채팅 프로그램 만들기를 하게 되었는데
지금까지 배웠던 모든 내용이 나오기 때문에 정리 차원에서 따로 한 번에 올리도록 하겠습니다.