소켓이란 무엇입니까?
일반적으로 서버는 특정 컴퓨터에서 실행되며 특정 포트 번호에 바인딩된 소켓이 있습니다. 서버는 클라이언트가 연결 요청을 할 때까지 소켓을 수신 대기합니다.
클라이언트 측: 클라이언트는 서버가 실행 중인 시스템의 호스트 이름과 서버가 수신 중인 포트 번호를 알고 있습니다. 연결을 요청하기 위해 클라이언트는 서버의 머신 및 포트에서 서버와 랑데부를 시도합니다. 클라이언트는 또한 이 연결 중에 사용할 로컬 포트 번호에 바인딩되도록 서버에 자신을 식별해야 합니다. 이것은 일반적으로 시스템에서 할당합니다.
모든 것이 잘되면 서버는 연결을 수락합니다. 수락 시 서버는 동일한 로컬 포트에 바인딩된 새 소켓을 가져오고 원격 끝점도 클라이언트의 주소 및 포트로 설정합니다. 연결된 클라이언트의 요구 사항을 처리하면서 연결 요청에 대해 원래 소켓을 계속 수신할 수 있도록 새 소켓이 필요합니다.
클라이언트 측에서 연결이 수락되면 소켓이 성공적으로 생성되고 클라이언트는 소켓을 사용하여 서버와 통신할 수 있습니다.
클라이언트와 서버는 이제 소켓에 쓰거나 소켓에서 읽는 방식으로 통신할 수 있습니다.
정의:
소켓 은 네트워크에서 실행되는 두 프로그램 간의 양방향 통신 링크의 한 끝점입니다 . 소켓은 포트 번호에 바인딩되어 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
'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 |
댓글