윈도우 소켓

Server/Winodw Network 2015. 7. 13. 16:25

소켓은 원래 버클리 유닉스( Berkeley Software Distribution UNIX)에서 사용한 네트워크 프로그래밍 인터페이스이다.

이것을 윈도우 환경에서 사용할 수 있도록 한 것이 윈도우 소켓(Winsock)이다.

 

1. 소켓의 특징

 

윈도우 소켓은 유닉스 소켓을 기반으로 한 네트워크 프로그래밍 인터페이스이므로 소스 코드 수준에서 비교적 호환성이 높다.

하지만 유닉스 소켓 프로그래밍과 다른 점도 존재한다.

 

1. 윈도우 소켓은 DLL을 통해 대부분의 기능이 제공되므로 DLL초기화와 종료작업을 위한 함수가 필요하다.

 

2. 윈도우 애플리케이션은 대개 GUI를 기반으로 하며, 메세지 구동 방식으로 동작하므로 이를 위한 확장 함수가 필요하다.

 

3. 윈도우는 운영체제 차원에서 멀티스레드를 지원하므로 멀티스레드 환경에서 안정적으로 동작하기 위한 구조와 이를 위한 함수가 필요하다.

 

 

윈도우 소켓을 이용해서 네트워크 프로그래밍을 하면 얻는 장점

 

1. 유닛스 소켓과 소스 코드 수준에서 호환성이 높으므로 기존 프로그램을 포팅하기 쉽다.

2. 여러 환경에서 사용할 수 있다.

3. TCP/IP이외에도 다양한 종류의 프로토콜을 지원하므로 최소한의 코드 수정으로 애플리케이션에서 사용할 프로토콜을 변경할 수 있다.

4. 비교적 저수준의 프로그래밍 인터페이스로, 세부적인 제어가 가능하므로 고성능의 네트워크 애플리케이션을 개발할 수 있다.

 

단점

 

1. 애플리케이션 수준의 프로토콜을 프로그래머가 직접 설계해야한다.

2. 서로 다른 바이트 정렬 방식을 사용하거나 데이터 처리 단위가 서로 다른 종단 시스템간 통신을 할 경우, 애플리케이션 수준에서 데이터 변환을 처리해야한다.

 

 

 

윈도우 소켓의 구조

 

 

 

 

 

비쥬얼 프로젝트 세팅할 때 동적 라이브러리 링크하려면

 

Project -> 속성 -> 링커 -> 입력 -> 추가 종속성 -> ws2_32.lib 추가  끝@!~!~!

 

출처 : 윈도우 네트워크 프로그래밍

저자 : 김선우 저

 

'Server > Winodw Network' 카테고리의 다른 글

윈도우 소켓 초기화와 종료  (0) 2015.07.14
오류 처리  (0) 2015.07.14
소켓 개념  (0) 2015.07.13
패킷 전송 원리  (0) 2015.07.11
TCP / IP 프로토콜 구조  (0) 2015.07.10
admin