分享

winsock 函数声明大全

 心不留意外尘 2016-08-30

http://blog.csdn.net/whatday/article/details/41723469

2014

一、 基本Socket函数

1.accept()*   //响应连接请求,并且新建一个套接字,原来的套接口返回监听状态
  accept(s: TSocket; addr: PSockAddr; addrlen: PInteger): TSocket; stdcall;

2.bind()  // 把一个本地的名字和无名的套接字捆绑起来
  bind(s: TSocket; var addr: TSockAddr; namelen: Integer): Integer; stdcall;

3.CloseSocket() //关闭套接字
  closesocket(s: TSocket): Integer; stdcall;

4.Connect()*  // 初始化到一个指定套接口上的链接
  connect(s: TSocket; var name: TSockAddr; namelen: Integer): Integer; stdcall;

5.GetPeerName()  //得到连接在指定套接口上的对等通信方的名字
  GetPeerName(s: TSocket; var name: TSockAddr; var namelen: Integer): Integer; stdcall;

6.GetSockName()  //得到指定套接口上当前的名字
  getsockname(s: TSocket; var name: TSockAddr; var namelen: Integer): Integer; stdcall;

7.GetSockopt()  //得到与制定套接口相关的属性选项
  getsockopt(s: TSocket; level, optname: Integer; optval: PChar; var optlen: Integer): Integer; stdcall;

8.htonl()  //把32位的数字从主机字节顺序转换到网络字节顺序
  htonl(hostlong: u_long): u_long; stdcall;

9.htons()  //把16位的数字从主机字节顺序转换到网络字节顺序
  htons(hostshort: u_short): u_short; stdcall;

10.inet_addr()  //把一个Internet标准的点分十进制地址转换成Internet地址数值
   inet_addr(cp: PChar): u_long; stdcall;

11.inet_ntoa()   //把Internet地址转换成点分十进制的字符串
   inet_ntoa(inaddr: TInAddr): PChar; stdcall;

12.ioctlsocket()  //为套接字提供控制
   ioctlsocket(s: TSocket; cmd: DWORD; var arg: u_long): Integer; stdcall;

13.listen()   //监听套接字上连接请求的到来
   listen(s: TSocket; backlog: Integer): Integer; stdcall;

14.ntohl()    //把32位的数字从网咯字节顺序转换为主机字节顺序
   ntohl(netlong: u_long): u_long; stdcall;

15.ntohs()   //把16位的数字从网咯字节顺序转换为主机字节顺序
   ntohs(netshort: u_short): u_short; stdcall;

16.recv()*    //从已经连接的套接字接受数据
   recv(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;

17.recvfrom()*  //从已连接的或没有连接的套接口接受数据
   recvfrom(s: TSocket; var Buf; len, flags: Integer; var from: TSockAddr; var fromlen: Integer): Integer; stdcall;

18.select()*   //执行同步IO多路复用
   select(nfds: Integer; readfds, writefds, exceptfds: PFDSet;timeout: PTimeVal): Longint; stdcall;

19.send()*   //从已连接的套几口发送数据
   send(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;

20.sendto()*  //从已连接的或没有连接的套接口发送数据
   sendto(s: TSocket; var Buf; len, flags: Integer; var addrto: TSockAddr;tolen: Integer): Integer; stdcall;

21.setsockopt()  //设置与指定套接口相关的属性选项
   setsockopt(s: TSocket; level, optname: Integer; optval: PChar;optlen: Integer): Integer; stdcall;

22.shutdown()  //关闭一部分全双工的链接
   shutdown(s: TSocket; how: Integer): Integer; stdcall;
 
23.socket()  //创建并返回一个socket
   socket(af, Struct, protocol: Integer): TSocket; stdcall;


二、数据库函数

1.Gethostbyaddr()*  //根据网络地址得到对应的名字(会有多个)和地址
  Gethostbyaddr(addr: Pointer; len, Struct: Integer): PHostEnt; stdcall;

2.Gethostbyname()* //根据主机名得到对应的名字(会有多个)和地址
  Gethostbyname(name: PChar): PHostEnt; stdcall;

3.gethostname()  //得到本机主机名
  gethostname(name: PChar; len: Integer): Integer; stdcall;

4.getservbyname()*  //根据服务的名字得到对应的服务名和端口号
  getservbyname(name, proto: PChar): PServEnt; stdcall;

5.getservbyport()*  //根据端口号得到对应的服务名和端口号
  getservbyport(port: Integer; proto: PChar): PServEnt; stdcall;

6.getprotobyname()  //根据协议名得到对应的协议名和数值
  getprotobyname(name: PChar): PProtoEnt; stdcall;

7.getprotobynumber()  //根据端口号得到对应的协议名和数值
  getprotobynumber(proto: Integer): PProtoEnt; stdcall;


三、其他函数

1.WSACleanup(); //初始化底层的windows Sockets DLL

2.WSAStartup    //从底层的Sockets DLL中撤销注册
  WSAStartup(wVersionRequired: word; var WSData: TWSAData): Integer; stdcall;

3.WSAAsyncSelect  //Select函数的异步版本
  WSAAsyncSelect(s: TSocket; HWindow: HWND; wMsg: u_int; lEvent: Longint): Integer; stdcall;

4.WSAIsBlocking   //确定底层的winsock DLL是否在该线程已经被一个调用阻塞
  WSAIsBlocking: BOOL; stdcall;

5.WSACancelBlockingCall   //取消未完成的阻塞的API调用
  WSACancelBlockingCall: Integer; stdcall;

6.WSASetBlockingHook   //为底层的windows sockets实现设置阻塞钩子
  WSASetBlockingHook(lpBlockFunc: TFarProc): TFarProc; stdcall;

7.WSASetLastError    //设置下一次的WSAGetLastError返回的错误信息
  WSASetLastError(iError: Integer); stdcall;

8.WSAGetLastError   //得到最近的一个windows sockets API调用错误的详细信息
  WSAGetLastError(iError: Integer); stdcall;

9.WSAUnhookBlockingHook   //恢复原始的阻塞钩子
  WSAUnhookBlockingHook: Integer; stdcall;

10.WSACancelAsyncRequest   //取消一个未完成的 WSAAsyncGetXByY 函数的实例
   WSACancelAsyncRequest(hAsyncTaskHandle: THandle): Integer; stdcall;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多