unreal 5기

251208 언리얼엔진 본캠프 83일차 소켓(Socket)

parkjinnam 2025. 12. 8. 19:20

소켓(Socket)

소켓은 프로그램이 네트워크로 데이터를 내보내거나 네트워크에서 데이터를 받아들이는 연결부로 볼 수 있다. 좀 더 전문적인 표현으로 말하자면 네트워크 통신의 엔드포인트라고 볼 수 있다. 즉 서버와 클라이언트 간의 네트워크 흐름의 끝에 소켓이 있다. 서버와 클라이언트가 소켓을 통해 연결되는 과정은 다음과 같다.

 

1. Socket 생성 : socket()를 통해 생성

2. Bind : 서버에서 진행 bind()를 통해서 해당 회선을 등록

3. Listen : 서버에서 진행 listen()을 통해 수신 대기 상태로 전환

4. Connect : 클라이언트가 진행 connect()를 통해 서버에 송신 요청

5. Accept : 서버에서 진행 accept()를 통해 클라이언트로 부터의 요청을 승인 이때 서버는 연결된 클라이언트 전용 소켓을 하나 더 만듦

6. Send/Recv : send(), recv()를 통해 송수신 진행

7. Close : close()를 통해 해당 회선 종료

 

이러한 통신을 위해서 소켓은 IP주소, 포트 번호, 프로토콜(TCP/UDP) 세 가지 요소가 필요하게 된다.