zoukankan      html  css  js  c++  java
  • 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 编程主要的几个函数, 慢慢学习慢慢消化吧.

  • 相关阅读:
    L3-1 二叉搜索树的结构 (30 分)
    L3-2 森森快递 (30 分)(贪心+线段树/分块)
    三分(凸函数)
    (三分入门)(凹函数)
    Print Article(斜率DP入门+单调队列)
    PTA 逆散列问题 (30 分)(贪心)
    二叉树遍历相关
    7-5 堆中的路径 (25 分)
    Grouping ZOJ
    D
  • 原文地址:https://www.cnblogs.com/mdnx/p/2599588.html
Copyright © 2011-2022 走看看