Winsock简介

     使用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,他们分别表示可以同时打开的最大套接字数量,以及数据报的最大长度。

winsock简单介绍,Windows下网络编程的规范-Windows Sockets是Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。从1991年的1.0版到1995年的2.0.8版,经过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成为Windows网络编程的事实上的标准。   Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套microsoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows Sockets也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。遵守这套Windows Sockets规范的网络软件,我们称之为Windows Sockets兼容的,而Windows Sockets兼容实现的提供者,我们称之为Windows Sockets提供者。一个网络软件供应商必须百分之百地实现Windows Sockets规范才能做到现Windows Sockets兼容。任何能够与Windows Sockets兼容实现协同工作的应用程序就被认为是具有Windows Sockets接口。我们称这种应用程序为Windows Sockets应用程序。Windows Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows Sockets实现都支持流套接口和数据报套接口.应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系如图   通信的基础是套接口(Socket),一个套接口是通讯的一端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值