https://www.youtube.com/watch?v=nMbGvRnP_c8
소켓 통신을 이해하기 위해서
네트워크 프로그래밍과 소켓을 간단하게 이해하고 넘어가겠습니다.
네트워크 프로그래밍 이란 네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고받을 수 있도록 하는것이 네트워크 프로그래밍입니다.
자세히 들어가게 된다면 복잡하겠지만 큰 틀은 이게 전부 입니다.
그렇다면 네트워크로 연결되어 있는 두 컴퓨터간에 데이터를 주고받기 위해서 필요한 것은 무엇일까요?
우선 당연하게도 물리적인 연결이 필요합니다.
저희는 이미 인터넷이라는 네트워크에 연결되어 있으니 신경 쓸 필요가 없습니다.
물리적으로 연결이 된 후 소프트웨어적인 데이터의 송수신 방법만 고려하면 됩니다.
하지만 이 역시도 고민할 필요가 없습니다. 바로 운영체제에서 소켓이라는 것을 제공하기 때문입니다.
소켓은 물리적으로 연결된 네트워크상에서의 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치를 의미합니다.
소켓을 이용한다면 데이터 송수신의 원리를 이론적으로 잘 몰라도 데이터를 주고받을 수 있게 됩니다.
정리해 보자면 소켓은 네트워크 상에서의 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치(도구) 라고 할 수 있습니다.
소켓은 크게 두 가지로 나뉘는데 그 중 TCP소켓에 대해 먼저 예시를 통해 소개해 드리겠습니다.
첫번째로 TCP소켓 입니다.
네트워크 프로그래밍은 소켓 프로그래밍 이라고도 합니다.