본문/내용
소켓
1. 소개
▶ 소켓은 TCP/IP를 이용하는 API로써 1982년 BSD(Berkeley Software Distribution) UNIX 4.1에서 소개됨.
역사적 연원에 의해, 버클리의 UNIX 개발자들은 1980년대 초에 그들의 유명하고 또한 널리 사용되는 소켓 인터페이스를 생산했고, 반면에 System V 개발자들은 그들의 트랜스포트 수준 인터페이스(TLI, Transport Level Interface)를 1986년에 발표했다. 소켓 인터페이스와 TLI 둘다 XTI에서 지원된다. 소켓은 동일 기계상의 프로세스들이나 또는 서로 다른 기계 사이의 프로세스에 대해 일관된 단순한 프로그래밍 인터페이스를 제공한다. 간단히 말하면 소켓의 목표는 두 프로세스 간에 이들이 동일한 기계에 존재하거나 또는 다른 기계에 있거나 간에 관계없이 양방향의 메시지를 허용하는 충분히 일반적인 IPC 수단을 제공하는 데 있다.
2. UNIX BSD 소켓과 윈속의 차이점
▶ UNIX와 달리 윈도우3.1 이하에서는 멀티태스킹을 지원하지 않음.
▶ 윈속은 주로 윈도우 프로그래밍으로 구현되는데, 윈도우 프로그래밍이 `메시지 구동형 프로그래밍`이라는 것이 UNIX 프로그램과 크게 다른 점임.
▶ 윈속 프로그래밍에서는 윈속의 기능을 제공하는 라이브러리로 DLL인 Winsock.dll을 사용하는데, 이러한 DLL 라이브러리는 컴파일시 링크되는 것이 아니라 응용 프로그램 수행시 링크됨. (DLL을 사용하는 것의 장점은 여러 응용 프로그램이 하나의 DLL을 공유하여 사용할 수 있다는 것이다)
▶ BSD 소켓처럼 close()를 이용해 소켓을 닫는 것이 아니라 closesocket() 함수를 사용해 닫아야 함.
3. 연결의 유형
네트워크를 통해 정보를 보낼 필요가 있는 프로세스들은 두 가지 중 하나의 통신 방법을 선택할 수 있음.