Winsock简介

来源:互联网 发布:ubuntu 安装 分辨率 编辑:程序博客网 时间:2024/05/22 12:24

     使用winsock编程接口,应用程序可通过普通网络协议如TCP/IP或IPX协议进行通行。

1.1 Winsock头文件及库文件

    在编译采用了WINSOCK2.H的应用程序时,须链接到WS2_32.LIB库。如果从MSWSOCK.H中使用扩展API,还必须链MSWSOCK.DLL。

1.2 Winsock的初始化

    每个Winsock应用都必须加载合适的Winsock DLL版本。如果调用一个Winsock函数之前没有加载Winsock库,这个函数就会返回一个SOCKET_ERROR,错误信息是WSANOTINITIALISED。加载Winsock库是通过调用WSAStartup函数实现的。这个函数的定义如下:

int WSAStartup{

   WORD wVersionRequested,

   LPWSADATA lpWSAData

}

  wVersionRequested参数用于指定准备加载的Winsock库的版本。高位字节指定所需Winsock库的次版本,而低位字节则是主版本。可以使用宏MAKEWORD(x,y)(其中,x是高位字节,y是低位字节)来方便地获得wVersionRequested的正确值。

  lpWSAData参数是指向LPWSADATA结构的指针,WSAStartup用与其加载的库版本有关的信息填充这个结构。

typedef struct WSAData

{

  WORD wVersion;

  WORD wHighVersion;

  char szDescription[WSADESCRIPTION_LEN+1];

  char szSystemStatus[WSASYS_STATUS_LEN+1];

  unsigned short iMaxSockets;

  unsigned short iMaxUdpDg;

  char FAR* lpVendorInfo;

}WSADATA,*LPWSADATA;

不要使用下面两个字段:iMaxSockets和iMaxUdpDg,他们分别表示可以同时打开的最大套接字数量,以及数据报的最大长度。

0 0
原创粉丝点击