개발/Spring

자바 소켓

728x90

자바에서 TCP 통신을 하려면 Socket 클래스를 사용하면 된다.

java.net 패키지에는 네트워크 관련 클래스들이 선언되어 있다.

 

 

이 소켓 클래스는 데이터를 보내는 쪽에서 객체를 생성하여 사용한다. 데이터를 받는 쪽에서 클라 요청을 받으면 요청에 대한 소켓 객체를 생성하여 데이터를 처리한다. 이 소켓 클래스는 서버 쪽이든 클라쪽이든 원격에 있는 장비와의 연결 상태를 보관하고 있다.

 

서버에서는 ServerSocket 이라는 클래스를 사용하여 데이터를 받는다.

 

이 클래스는 별도의 new 키워드가 아닌 ServerSocket 클래스에서 제공하는 메소드에서 클라 요청이 생기면 Socket 객체를 생성해서 전달해준다.

 

ServerSocket() -> 서버 소켓 객체만 생성한다.

ServerSocket(int port) -> 지정된 포트를 사용하는 서버 소켓을 생성한다.

ServerSocket(int port, int backlog) -> 지정된 포트와 backlog 갯수를 가지는 소켓을 생성한다.

ServerSocket(int port, int backlog, InetAddress bindAddr) -> 지정된 포트와 backlog 갯수를 가지는 소켓을 생성하며, bindAddr에 있는 조수에서의 접근만을허용한다.

 

backlog = 큐의 갯수

 

ServerSocket 객체가 연결 요청을 처리 못하고 대기시킬 때 그 때의 최대 대기 갯수라고 보면 된다.

 

 

 

자바에서 인터넷을 통하여 웹 페이지의 요청을 할 수도 있다.

자바 API에서 제공하는 URL 이라는 클래스를 사용하면 간단한 요청은 처리할 수 있다.

 

운영하는 시스템 내에서 웹페이지를 요청할 일이 있다면, 이 URL이라는 클래스를 사용하는 것을 권장하지 않는다.

왜냐하면 이 클래스에서 연결에 대한 상세한 설정을 할 수가 없기 때문이다. 그래서 일반적으로 아파치의 HTTP Componets를 많이 사용한다.

 

 

 

 

 

 

 

'개발 > Spring' 카테고리의 다른 글

자바 참조 자료형  (0) 2021.04.05
자바 배열  (0) 2021.04.05
자바 컬렉션 Map  (0) 2021.03.18
자바 문자열 String  (0) 2021.03.18
자바 컬렉션 Set  (0) 2021.03.15