컴퓨터 공부/네트워크 프로그래밍

[6월 2일 1교시] 소켓 프로그래밍 이론

려리군 2009. 6. 2. 19:01

MAKEWORD(하위바이트, 상위바이트)

MAKELONG(하위워드, 상위워드)

HIWORD(더블워드) = 상위워드, HIBYTE(워드) = 상위바이트

LOWORD(더블워드) = 하위워드, LOBYTE(워드) = 하위바이트


WSAData구조체

참고주소 : http://msdn.microsoft.com/en-us/library/ms741563.aspx

typedef struct WSAData {

WORD           wVersion; // WinSock 버젼

WORD           wHighVersion; // 지원 가능한 최상위 WinSock 버젼

char           szDescription[WSADESCRIPTION_LEN+1];

char           szSystemStatus[WSASYS_STATUS_LEN+1];

unsigned short iMaxSockets; // 한 프로세스에서 사용 가능한 소켓 수

unsigned short iMaxUdpDg; // 데이터그램의 최대 크기

char FAR *     lpVendorInfo; // Vendor 정보 (2.2이상은 무시)

}WSADATA, *LPWSADATA;


int WSAStartup(__in   WORD wVersionRequested, __out  LPWSADATA lpWSAData);

참고주소 : http://msdn.microsoft.com/en-us/library/ms742213.aspx

DLL을 불러온다. Winsock 사용을 위한 초기화 작업 WSAData 구조체 초기화.

리턴 : 성공시 0, 실패시 오류코드

wVersionRequested : 호출자가 사용할 수 있는 윈도우 소켓의 버젼. 높은 순서 바이트는 minor, 낮은 순서 바이트는 major버젼이다.

lpWSAData : 윈도우 소켓 구현의 상세 정보를 받을 WSADATA 구조체의 포인터.


int WSACleanup(void);

참고주소 : http://msdn.microsoft.com/en-us/library/ms741549.aspx

리턴 : 성공시 0, 실패시 SOCKET_ERROR.

DLL의 사용을 종료한다.


윈도우 소켓 라이브러리를 다음처럼 포함한다.

#pragma comment(lib,"wsock32.lib")

// 1.1에 대한 라이브러리


48~50쪽 참고