WinSocket的一些主要函数.

 

 

 

 

 

 

1.WSAstartup (连接WinSocket库) 原型如下:

    Int WSAStartup (

    Word WVersionregusested,

    LPWSADATA LPWSAData   

    );

   在delphi中定义如下:

   function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Integer; stdcall;

  应用程序在使用Winsock API之前必须调用此函数,只有当此函数返回(表示应用程序与Winsock库成功建立起连接),应用程序才可以调用其它 Windows Sockets DLL 中的函数. 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2. WSACleanup (断开与Winsocket库的连接)原型如下:

   Int WSACleanup (Void);

  在Delphi中定义如下:

    function WSACleanup: Integer; stdcall;

 应用程序在使用完Socket库函数之后,必须使用这个函数来释放所占用的内存.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

3. Socket (套接字建立函数) 原型如下

    SOCKET Socket(

    Int af,

    int type,

    int Protocol

    );

  在Delphi中定义如下 : 

  function socket(af, Struct, protocol: Integer): TSocket; stdcall;

  使用该函数可以建立使用特定协议的网络套接字,例如UDP协议的写法

  var
   S : TSocket;
  begin
   WSAStartup();
 S := Socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);

   WSACleanup;
  end;

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

4. bind(套接字绑定函数) 原型如下:

 Int bind (

 SOCKET S,

 coust struct sockaddr FAR* name,

 int namelen

 );

 在Delphi中定义如下 :

 function bind(s: TSocket; var addr: TSockAddr; namelen: Integer): Integer; stdcall;

s : 是通过Socket建立的套接字, addr是指向描述通讯对象的结构体(TSockAddr)的指针,namelen是TSockAddr结构体的长度

 TSockAddr结构体有三个成员.

 1. IP地址

 2. 端口

 3. 地址类型

---------------------------------------------------------------------------------------------------------------------------------------------- -------------- ---

5. listen(套接字监视函数) 原型如下:

   int listen(

   SOCKET s,

   int backlog 

  );

  Delphi中定义如下 : 

  function listen(s: TSocket; backlog: Integer): Integer; stdcall;

 listen一般用于服务端程序. 

 s 是刚才用socket创建的套接字. backlog用于设定等待连接的客户数(目前最大值为5最小值为1)

------------------------------------------------------------------------------------------------------------------------------------------------------------------

6. accept (接受连接请求)原型如下

SOCKET accept (

SOCKET s,

struct sockaddr FAR* addr,

int FAR* addrlen 

 );

Delphi中定义如下:

 function accept(s: TSocket; addr: PSockAddr; addrlen: PInteger): TSocket; stdcall;

服务端程序用此函数来接受客户端的socket请求,accpet的返回值是一个新的socket套接字,用这个新的套接字来与当前连接的客户端通信,以前的socket套接字还会保留用来与其它客户端连接.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

7. recv(接收信息)原型如下:

 int recv (

 SOCKET s,

 char FAR* buf,

 int len,

 int flags

 );

Delphi定义如下: 

function recv(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;

此函数用于面向连接的Socket中,以便能从另一端接收信息.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

8.Send(发送信息)原型如下:

 int send (

 SOCKET s 

 const char FAR* buf,

 int len,

 int flags

 );

 Delphi中定义如下 : 

function send(s: TSocket; const Buf; len, flags: Integer): Integer; stdcall;

此函数用于面向连接的Socket中,以便于能发送信息到另一端.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.

以上8个是Windows Socket 编程主要的几个函数, 慢慢学习慢慢消化吧.

posted @ 2012-07-19 16:44  梦断难寻  阅读(2527)  评论(0编辑  收藏  举报