본문 바로가기
Unreal/C++ 서버

소켓을 생성한다는 것은?

by 보안매크로 2023. 12. 22.
728x90

소켓을 생성한다는 것은 네트워크 통신을 위한 '엔드포인트'(Endpoint)를 만든다는 뜻입니다. 소켓은 컴퓨터 네트워킹에서, 네트워크를 통해 데이터를 주고받기 위한 인터페이스를 제공합니다. 간단히 말해서, 소켓은 데이터를 보내거나 받기 위해 네트워크 상의 다른 시스템과의 '통신점' 역할을 합니다.

네트워크 통신을 위해, 두 시스템은 각각 소켓을 열고, 이 소켓들을 통해 서로 연결할 수 있습니다. 이 연결이 성립되면, 두 시스템은 서로 데이터를 주고받을 수 있게 됩니다. TCP/IP 프로토콜에서 이런 과정을 '세션'이라고 부릅니다.

소켓 생성의 주요 포인트:

  1. 프로토콜: 소켓을 생성할 때 어떤 네트워크 프로토콜을 사용할지 결정해야 합니다. 가장 일반적인 프로토콜은 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)입니다. TCP는 연결 지향적이고 신뢰성 있는 통신을 제공하는 반면, UDP는 연결을 설정하지 않고 데이터를 전송하는 비연결성 프로토콜입니다.
  2. IP 주소와 포트 번호: 소켓을 생성할 때 IP 주소와 포트 번호를 지정해야 합니다. IP 주소는 네트워크 상의 기기를 식별하는 데 사용되며, 포트 번호는 그 기기 상의 특정 프로세스(어플리케이션)를 식별하는 데 사용됩니다.
  3. 바인딩: 서버 소켓은 특정 IP 주소와 포트 번호에 '바인딩'되어, 해당 주소와 포트로 들어오는 연결을 기다립니다.
  4. 연결 수락: 클라이언트가 서버에 연결을 시도하면, 서버 소켓은 이 연결을 '수락'합니다. 연결이 수락되면, 서버와 클라이언트 간에 데이터를 주고받을 준비가 된 것입니다.
  5. 데이터 전송과 수신: 연결이 설정되면, 서버와 클라이언트는 서로 데이터를 보내고(전송) 받을(수신) 수 있습니다.
728x90