이러한 처리를 운영체제가 알아서 해 줍니다. 따라서 TCP를 사용하는 프로그램을 만들면 간단하게 수신 보장을 받는 것입니다.
이제 여러분 프로그램에서 TCP를 이용하는 방법을 살펴봅시다.
코드 송신 측 코드
<11.22.33.44> main() { s = socket(TCP); // ➊ s.bind(any_port); s.connect("55.66.77.88:5959"); // ➋ s.send("hello"); // ➌ s.close(); }
UDP 소켓 사용법과 많은 부분이 비슷하지만, 다음 차이가 있습니다.
소켓을 생성할 때 UDP가 아닌 TCP를 쓰겠다고 지정해야 합니다(➊).
데이터를 보내기 전에 상대방과 연결을 해야 하겠죠? 이를 위해 connect(addr) 함수를 호출하여 addr에 상대방 측의 끝점을 넣어 줍니다(➋). connect() 함수는 연결에 성공할 때까지 블로킹됩니다.
데이터를 보낼 때는 sendTo()가 아닌 send(data)를 호출합니다(➌). sendTo()와는 다르게 수신 대상 끝점을 입력하지 않습니다. 이미 connect() 함수로 연결 끝점을 지정했기 때문입니다.