소켓은 통신을 위한 '종착지'의 역활을 담당합니다.
TCP(Transmission Control Protocol)는 UDP에 비해 속도는 느리지만 신뢰성 있는 데이터의 송수신을 보장합니다.
경로설정을 효과적으로 수행하기 위해 데이터를 여러개의 패킷으로 나누어 송수신 합니다.
UDP(user Datagram Protocol)는 비연결형 프로토콜입니다. TCP에 비해서 통신의 신뢰성이 부족하지만 빠른 데이터 송수신이 가능합니다. 데이터를 주고 받기 전에 사전 통신 절차를 거치지 않습니다.
소켓은 응용 계층에 속하는 통신 도구 입니다. 일반 개발자는 소켓만 잘 이해하면, 하위 계층에 대한 깊은 이해 없이 서로 통신을 주고받는 프로그램을 만들 수 있는 것 입니다.
포트(port)
서버를 사용하기 위해서는 포트에 대한 개념적 이해가 필요합니다. 프로그램이 통신을 하기 위해서는 유니크한 포트 번호를 할당해야 합니다. 1번~1024번 포트는 시스템에게 할당되므로, 실제 개발자는 서버 프로그램에 사용할 포트는 1025~65,536번 에서 선택하여 미리 설정해야 합니다.
서버 & 클라이언트 구조의 시스템을 만들때 서버의 포트를 명시적으로 할당하여 서로간에 약속에 되어야 합니다. 그래야 클라이언트는 서버의 IP & port 번호를 통해 서버에 접속이 가능해 집니다.
'C++ > 네트워크 프로그래밍' 카테고리의 다른 글
[C++]소켓 프로그래밍 라이브러리 3선 (0) | 2023.03.02 |
---|