DEV LOGS

[Windows Socket]소켓의 개념

라디스타 2018. 7. 20. 21:16

소켓 개념 이해

(1) 전화망에 비유한 소켓

(2) 전화망에 비유한 소켓 세부적으로 살펴보기


다양한 관점에서 보는 소켓

(1) 데이터 타입

- 소켓은 파일 디스크립터(file descriptor) 혹은 핸들(handle)과 유사하다.


- 파일 입출력 코드 VS 소켓 통신 코드

1
2
3
4
int fd = open("myfile", …);        // 파일 생성
read(fd, …)        // 데이터 읽기
write(fd, …)    // 데이터 
cs
>> 파일 입출력

1
2
3
4
SOCKET sock = socket(…);    // 소켓 생성
recv(sock,…)    // 데이터 받기
send(sock,…)    // 데이터 
cs

>> 소켓 통신


(2) 통신 종단점

- 소켓은 응용 프로그램 관점에서 통신의 출발점과 도착점이라고 간주할 수 있다.



(3) 네트워크 프로그래밍 인터페이스

- TCP/IP 프로토콜의 관점에서 소켓은 네트워크 프로그래밍 인터페이스에 불과하다. 따라서 응용 프로그램이 통신하기 위해 양쪽 모두 소켓을 사용해야 하는 것은 아니며, 같은 프로토콜을 사용하고 정해진 형태와 절차에 따라 데이터를 주고받으면 된다.