• 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 编程主要的几个函数, 慢慢学习慢慢消化吧.

  • 相关阅读:
    haproxy 安装与配置
    Rancher使用入门
    Docker中配置国内镜像
    【转】【VC】VC程序运行时间测试函数
    【转】PNG图像文件格式
    【转】BMP图像文件格式
    【转】OPenGL MFC绘图
    OPenGL 库文件的添加
    【转】MFC WM_CTLCOLOR 消息
    【转】C#获取电脑客户端IP地址及当前用户名
  • 原文地址:https://www.cnblogs.com/mdnx/p/2599588.html
Copyright © 2020-2023  润新知