Winsock是Windows实现socket端口的标准API,它从BSD Socket(套接字中)继承了大量的特性。有点需要说明的是Winsock并不是网络协议。Winsock目前为止有两个主要版本Winsock1和Winsock2。(winsock1往往会省略掉后面的1,本文也遵从此默认规则)。到目前为止Windows98以后的Windows版本(包括windows nt4.0)都支持winsock2,而windows95和windows CE却只支持Winsock1。
Delphi默认只支持Winsock1。此时只需要在 uses字段中引入 Winsock。
代码1.1
uses
Windows, Messages, SysUtils, Classes, WinSock;
而Winsock2需要额外的支持。Winsock2可以从http://www.wesoho.com/article.asp?id=1811下载。
winsock1相对简单。我们的例子从Winsock1开始说起。
首先在调用winsock前,需要加载Winsock的DLL版本,如果加载错误则返回一个SOCKET_ERROR错误信息为WSANOTINITIALISED。加载winsock库通过调用WSAStartup函数实现,此函数的格式如下:
function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Integer