본문 바로가기
NETWORK

소켓(socket)이란?

by Rainbound-IT 2022. 5. 16.
반응형

소켓이란 무엇입니까?

일반적으로 서버는 특정 컴퓨터에서 실행되며 특정 포트 번호에 바인딩된 소켓이 있습니다. 서버는 클라이언트가 연결 요청을 할 때까지 소켓을 수신 대기합니다.

클라이언트 측: 클라이언트는 서버가 실행 중인 시스템의 호스트 이름과 서버가 수신 중인 포트 번호를 알고 있습니다. 연결을 요청하기 위해 클라이언트는 서버의 머신 및 포트에서 서버와 랑데부를 시도합니다. 클라이언트는 또한 이 연결 중에 사용할 로컬 포트 ​​번호에 바인딩되도록 서버에 자신을 식별해야 합니다. 이것은 일반적으로 시스템에서 할당합니다.

모든 것이 잘되면 서버는 연결을 수락합니다. 수락 시 서버는 동일한 로컬 포트에 바인딩된 새 소켓을 가져오고 원격 끝점도 클라이언트의 주소 및 포트로 설정합니다. 연결된 클라이언트의 요구 사항을 처리하면서 연결 요청에 대해 원래 소켓을 계속 수신할 수 있도록 새 소켓이 필요합니다.

클라이언트 측에서 연결이 수락되면 소켓이 성공적으로 생성되고 클라이언트는 소켓을 사용하여 서버와 통신할 수 있습니다.

클라이언트와 서버는 이제 소켓에 쓰거나 소켓에서 읽는 방식으로 통신할 수 있습니다.


정의: 

소켓 은 네트워크에서 실행되는 두 프로그램 간의 양방향 통신 링크의 한 끝점입니다 . 소켓은 포트 번호에 바인딩되어 TCP 계층이 데이터를 보낼 응용 프로그램을 식별할 수 있습니다.


엔드포인트는 IP 주소와 포트 번호의 조합입니다. 모든 TCP 연결은 두 끝점에 의해 고유하게 식별될 수 있습니다. 그렇게 하면 호스트와 서버 간에 여러 연결을 가질 수 있습니다.

Java 플랫폼 의 java.net패키지는 SocketJava 프로그램과 네트워크의 다른 프로그램 간의 양방향 연결을 구현하는 클래스 를 제공합니다.  Socket클래스는 플랫폼 종속 구현의 맨 위에 위치하여 Java 프로그램에서 특정 시스템의 세부 정보를 숨깁니다. java.net.Socket네이티브 코드에 의존하는 대신 클래스 를 사용함으로써 Java 프로그램은 플랫폼 독립적인 방식으로 네트워크를 통해 통신할 수 있습니다.

또한 서버가 클라이언트에 대한 연결을 수신 대기하고 수락하는 데 사용할 수 있는 소켓을 구현하는 클래스를 java.net포함합니다 . ServerSocket이 단원에서는 Socket및 ServerSocket클래스를 사용하는 방법을 보여줍니다.

웹에 연결하려는 경우 URL클래스 및 관련 클래스( URLConnection, URLEncoder)가 소켓 클래스보다 더 적합할 수 있습니다. 사실, URL은 웹에 대한 상대적으로 높은 수준의 연결이며 기본 구현의 일부로 소켓을 사용합니다. URL 을 통한 웹 연결에 대한 정보는 URL 작업을 참조하십시오 .

 

Reference

https://docs.oracle.com/javase/tutorial/networking/sockets/definition.html

 

What Is a Socket? (The Java™ Tutorials > Custom Networking > All About Sockets)

The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Java Language Changes for a summary of updated

docs.oracle.com

 

 

반응형

'NETWORK' 카테고리의 다른 글

TCP 포트 영역  (0) 2022.08.17
특정 포트 ping 테스트 (tcping)  (0) 2022.08.02
SNI(Server Name Inication)  (0) 2022.02.18
ICMP, TCP, UDP, Ping  (0) 2022.02.17
자주 사용하는 port 번호  (0) 2022.02.17

댓글