1. 程式人生 > >winsock庫

winsock庫

cin 加載 函數 描述 win sign img max src

加載Winsock庫函數 : WSAStartup

1 int WSAStartup(
2                WORD wVersionRequested,//指定想要加載的winsock庫
3                LPWSADATA lpWSAData//指向 WSADATA的指針,用來返回DLL庫的詳細信息
4 );

WSADat頭結構

技術分享
 1 typedef struct WSAData
 2 {
 3     WORD wVersion;    //庫文件建議應用程序使用的版本
 4     WORD wHighVersion;    //庫文件支持的最高版本
 5     char szDescription[WSADESCRIPTION_LEN+1];    //庫描述字符串
 6     char szSystemStatus[WSASYS_STATUS_LEN+1];    //系統狀態字符串
 7     unsigned short iMaxSockets;    //同時支持的最大套接字的數量
 8     unsigned short iMaxUdpDg;    //2.0版中已廢棄的參數
 9     char FAR* lpVendorInfo;    //已廢棄的參數
10 }WSADATA,FAR* LOWSADATA;
技術分享

每一個WSAStart調用必須對應一個隊WSAClean的調用,這個函數用來釋放winsock庫

int WSACleanup(void);

如果想使用winsock庫,應該包含對應的庫文件

1 #pragma comment(lib,"WS2_32")

以後封裝的經常用到的CInitSock類

技術分享
 1 #include <winsock2.h>
 2 #pragma comment(lib,"WS2_32")
 3 class CInitSock
 4 {
 5 public:
 6     CInitSock(BYTE minorVer=2,BYTE majorVer=2)
 7     {
 8         WSADATA wsaData;
 9         WORD sockVersion = MAKEWORD(minorVer,majorVer);
10         if(::WSAStartup(sockVersion,&wsaData)!=0)
11         {
12             exit(0);
13         }
14     }
15     ~CInitSock()
16     {
17         ::WSACleanup();
18     }
19 };
技術分享

winsock庫