Windows Sockets 函数api (微软官方文档)

博客提供了来自microsoft Documentation的函数api索引链接,介绍了Winsock.h和Winsock2.h的api接口与数据结构信息,还提及更多相关函数可参考Windows Sockets 2,包含多个头文件,并给出此技术的编程指导参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下函数api来自: microsoft Documentation ,本博客仅提供索引链接。

提示:可以借助浏览器自动翻译功能阅读参考文档。(英语水平高的人请忽略🤦‍♂️)

目录

Winsock.h

1. api接口

2. 数据结构信息(Structures)

Winsock2.h

1. api接口

2. 数据结构信息(Structures)


 

Winsock.h

1. api接口

winsock.h 包含以下编程接口:(注:以下内容为机翻结果)

Title(标题)Description(描述)
__WSAFDIsSet__WSAFDIsSet指定套接字是否包含在一组套接字描述符中。
AcceptEx接受新连接,返回本地和远程地址,并接收客户端应用程序发送的第一个数据块。注意:此功能是特定于 Microsoft 的 Windows 套接字规范的扩展。.
bind绑定函数将本地地址与套接字关联。
closesocket关闭套接功能关闭现有套接字。
FD_SETFd_set套接字(Winsock)函数和服务提供商使用该结构将套接字放入一组。
GetAcceptExSockaddrs分析从对 AcceptEx 函数的调用获得的数据,并将本地和远程地址传递到 sockaddr 结构。注意:此功能是特定于 Microsoft 的 Windows 套接字规范的扩展。.
gethostbyaddrgethostbyaddr 不再建议在 Windows 套接字 2 时使用。
gethostbynamegethostbyname 函数从主机数据库中检索与主机名对应的主机信息。
gethostnamegethostname 函数检索本地计算机的标准主机名。
getpeernamegetpeername 函数检索套接字连接到的对等体的地址。
getprotobynamegetprotobyname 函数检索与协议名称对应的协议信息。
getprotobynumbergetprotobyumber 函数检索与协议编号对应的协议信息。
getservbynamegetservbyname 函数检索与服务名称和协议对应的服务信息。
getservbyportgetservbyport 函数检索与端口和协议对应的服务信息。
getsocknamegetsockname 函数检索套接字的本地名称。
getsockoptgetsockopt 函数检索套接字选项。
htonlhtonl 函数将u_long转换为 TCP/IP 网络字节顺序(大端)。
htonshtons 函数将u_short转换为 TCP/IP 网络字节顺序(大端)。
inet_addr函数inet_addr一个包含 IPv4 虚线十进制地址的字符串转换为具有该结构IN_ADDR地址。
inet_ntoa该inet_ntoa将 (Ipv4) 互联网网络地址转换为互联网标准虚线十进制格式的 ASCII 字符串。
ioctlsocketioctlsocket 功能控制套接字的 I/O 模式。
ntohlntohl 函数将 TCP/IP 网络u_long转换为主机字节顺序(在英特尔处理器上几乎没有端)。
ntohsntohs 函数将 u_short从 TCP/IP 网络字节顺序转换为主机字节顺序(在英特尔处理器上是小端)。
recv从连接的套接字或无边界无连接套接接收数据。
recvfromrecvfrom 函数接收数据报并存储源地址。
sendtosendto 函数将数据发送到特定目标。
setsockopt设置套接字选项。
shutdown关机功能禁用套接字上的发送或接收。
TransmitFile通过连接的套接字句柄传输文件数据。
WSAAsyncGetHostByAddrWSASyncGetHostByAddr 函数异步检索与地址对应的主机信息。注意 WSASyncGetHostByAddr 函数不是为提供多个地址的并行分辨率而设计的。
WSAAsyncGetHostByNameWSASyncGetHostByName 函数异步检索与主机名对应的主机信息。注意 WSAAsyncGetHostByName 函数不是为提供多个名称的并行分辨率而设计的。
WSAAsyncGetProtoByNameWSAAsyncGetProtoByName 函数异步检索对应于协议名称的协议信息。
WSAAsyncGetProtoByNumberWSASyncGetProtoByNumber 函数异步检索对应于协议编号的协议信息。
WSAAsyncGetServByNameWSASyncGetServByName 函数异步检索对应于服务名称和端口的服务信息。
WSAAsyncGetServByPortWSASyncGetServByPort 函数异步检索与端口和协议对应的服务信息。
WSAAsyncSelect请求基于 Windows 消息的套接字网络事件通知。
WSACancelAsyncRequestWSACancelAsyncRequest 函数将取消不完整的异步操作。
WSACleanupWSACleanup 函数终止对WS2_32.dll。
WSAGetLastError返回上次失败的 Windows 套接字操作的错误状态。
WSARecvEx从连接的套接字或无边界无连接套接接收数据。
WSASetLastErrorWSASetLastError 函数设置可以通过 WSAGetLast 错误函数检索的错误代码。
WSAStartup通过进程启动使用 Winsock DLL。

2. 数据结构信息(Structures

标题描述
fd_setFd_set套接字(Winsock)函数和服务提供商使用该结构将套接字放入一组。
HOSTENT函数使用主机结构来存储有关给定主机的信息,如主机名、IPv4 地址等。
LINGER维护有关特定套接字的信息,指定当数据排队要发送和在套接字上调用关闭套接功能时,该套接字应如何运行。
PROTOENT原型结构包含对应于给定协议名称的名称和协议编号。
SERVENT服务结构用于存储或返回给定服务名称的名称和服务编号。
SOCKADDR袜子结构因所选协议而异。
SOCKADDR_IN袜子结构因所选协议而异。
TIMEVAL时间值结构用于指定时间间隔。它与伯克利软件分发 (BSD) Time.h 头文件关联。
TRANSMIT_FILE_BUFFERS系统TRANSMIT_FILE_BUFFERS指定在传输文件功能文件传输操作期间文件数据之前和之后传输的数据。
WSADATA包含有关 Windows 套接字实现的信息。

 

 

 

 

Winsock2.h

1. api接口

winsock2.h 包含以下编程接口:(注:以下内容为机翻结果)

Title(标题)Description(描述)
__WSAFDIsSet__WSAFDIsSet指定套接字是否包含在一组套接字描述符中。
accept接受函数允许在套接字上尝试传入连接。
bind绑定函数将本地地址与套接字关联。
closesocket关闭套接功能关闭现有套接字。
connect连接功能建立与指定套接字的连接。
FD_SETFd_set套接字(Winsock)函数和服务提供商使用该结构将套接字放入一组。
gethostbyaddrgethostbyaddr 不再建议在 Windows 套接字 2 时使用。
gethostbynamegethostbyname 函数从主机数据库中检索与主机名对应的主机信息。
gethostnamegethostname 函数检索本地计算机的标准主机名。
GetHostNameWGetHostNameW 函数将本地计算机的标准主机名检索为 Unicode 字符串。
getpeernamegetpeername 函数检索套接字连接到的对等体的地址。
getprotobynamegetprotobyname 函数检索与协议名称对应的协议信息。
getprotobynumbergetprotobyumber 函数检索与协议编号对应的协议信息。
getservbynamegetservbyname 函数检索与服务名称和协议对应的服务信息。
getservbyportgetservbyport 函数检索与端口和协议对应的服务信息。
getsocknamegetsockname 函数检索套接字的本地名称。
getsockoptgetsockopt 函数检索套接字选项。
htond将双精度值从主机转换为 TCP/IP 网络字节顺序(大端)。
htonf将浮点从主机转换为 TCP/IP 网络字节顺序(大端)。
htonlhtonl 函数将u_long转换为 TCP/IP 网络字节顺序(大端)。
htonll将未签名__int64从主机转换为 TCP/IP 网络字节顺序(大端)。
htonshtons 函数将u_short转换为 TCP/IP 网络字节顺序(大端)。
inet_addr函数inet_addr一个包含 IPv4 虚线十进制地址的字符串转换为具有该结构IN_ADDR地址。
inet_ntoa该inet_ntoa将 (Ipv4) 互联网网络地址转换为互联网标准虚线十进制格式的 ASCII 字符串。
ioctlsocketioctlsocket 功能控制套接字的 I/O 模式。
listen侦听函数将套接字位于其侦听传入连接的状态。
ntohd将未签名的__int64 TCP/IP 网络顺序转换为主机字节顺序(在英特尔处理器上是小字节顺序),并返回双精度。
ntohf将未签名的__int32 TCP/IP 网络顺序转换为主机字节顺序(在英特尔处理器上是小端),并返回浮点。
ntohlntohl 函数将 TCP/IP 网络u_long转换为主机字节顺序(在英特尔处理器上几乎没有端)。
ntohll将未签名的__int64 TCP/IP 网络顺序转换为主机字节顺序(在英特尔处理器上几乎没有最终用户)。
ntohsntohs 函数将 u_short从 TCP/IP 网络字节顺序转换为主机字节顺序(在英特尔处理器上是小端)。
recv从连接的套接字或无边界无连接套接接收数据。
recvfromrecvfrom 函数接收数据报并存储源地址。
select选择函数确定一个或多个套接字的状态,如有必要,等待执行同步 I/O。
send在连接的套接字上发送数据。
sendtosendto 函数将数据发送到特定目标。
setsockopt设置套接字选项。
shutdown关机功能禁用套接字上的发送或接收。
socket套接字功能创建绑定到特定传输服务提供商的套接字。
WSAAcceptWSAAccept 函数有条件地接受基于条件函数的返回值的连接,提供服务质量流规范,并允许传输连接数据。
WSAAddressToStringA将 sockaddr 结构的所有组件转换为地址的人类可读字符串表示形式。
WSAAddressToStringW将 sockaddr 结构的所有组件转换为地址的人类可读字符串表示形式。
WSAAsyncGetHostByAddrWSASyncGetHostByAddr 函数异步检索与地址对应的主机信息。注意 WSASyncGetHostByAddr 函数不是为提供多个地址的并行分辨率而设计的。
WSAAsyncGetHostByNameWSASyncGetHostByName 函数异步检索与主机名对应的主机信息。注意 WSAAsyncGetHostByName 函数不是为提供多个名称的并行分辨率而设计的。
WSAAsyncGetProtoByNameWSAAsyncGetProtoByName 函数异步检索对应于协议名称的协议信息。
WSAAsyncGetProtoByNumberWSASyncGetProtoByNumber 函数异步检索对应于协议编号的协议信息。
WSAAsyncGetServByNameWSASyncGetServByName 函数异步检索对应于服务名称和端口的服务信息。
WSAAsyncGetServByPortWSASyncGetServByPort 函数异步检索与端口和协议对应的服务信息。
WSAAsyncSelect请求基于 Windows 消息的套接字网络事件通知。
WSACancelAsyncRequestWSACancelAsyncRequest 函数将取消不完整的异步操作。
WSACancelBlockingCallWSACancelBlockCall 功能已按照 Windows 套接字 2 规范(修订版 2.2.0)删除。
WSACleanupWSACleanup 函数终止对WS2_32.dll。
WSACloseEventWSACloseevent 函数关闭一个打开的事件对象句柄。
WSAConnectWSAConnect 函数建立连接到另一个套接字应用程序,交换连接数据,并基于指定的 FLOWSPEC 结构指定所需的服务质量。
WSAConnectByList建立与一组目标地址(主机名和端口)表示的可能终结点集合中的一个的连接。
WSAConnectByNameA建立与指定主机和端口的连接。
WSAConnectByNameW建立与指定主机和端口的连接。
WSACreateEventWSACreateevent 函数将创建一个新的事件对象。
WSADuplicateSocketAWSADuplicateSocket 函数返回WSAPROTOCOL_INFO个结构,可用于为共享套接字创建新的套接字描述符。WSADuplicateSocket 功能不能在启用 QOS 的套接字上使用。
WSADuplicateSocketWWSADuplicateSocket 函数返回WSAPROTOCOL_INFO个结构,可用于为共享套接字创建新的套接字描述符。WSADuplicateSocket 功能不能在启用 QOS 的套接字上使用。
WSAEnumNameSpaceProvidersAWSAEnumNameSpace 提供程序函数检索有关可用命名空间提供程序的信息。
WSAEnumNameSpaceProvidersExA检索有关可用命名空间提供程序的信息。
WSAEnumNameSpaceProvidersExW检索有关可用命名空间提供程序的信息。
WSAEnumNameSpaceProvidersWWSAEnumNameSpace 提供程序函数检索有关可用命名空间提供程序的信息。
WSAEnumNetworkEventsWSAEnumNetwork 事件功能可发现指示的套接字的网络事件、清除内部网络事件记录和重置事件对象(可选)。
WSAEnumProtocolsAWSAEnumProtocol 函数检索有关可用传输协议的信息。
WSAEnumProtocolsWWSAEnumProtocol 函数检索有关可用传输协议的信息。
WSAEventSelectWSAEventSelect 函数指定要与网络事件的指定FD_XXX对象。
WSAGetLastError返回上次失败的 Windows 套接字操作的错误状态。
WSAGetOverlappedResultWSAGet 上列表结果函数检索指定套接字上重叠操作的结果。
WSAGetQOSByNameWSAGetQOSByName 函数基于命名模板初始化 QOS 结构,或者提供缓冲区来检索可用模板名称的枚举。
WSAGetServiceClassInfoAWSAGetServiceClassInfo 函数从指定的命名空间提供程序检索与指定服务类相关的类信息(架构)。
WSAGetServiceClassInfoWWSAGetServiceClassInfo 函数从指定的命名空间提供程序检索与指定服务类相关的类信息(架构)。
WSAGetServiceClassNameByClassIdAWSAGet 服务类名称比ClassId函数检索与指定类型关联的服务的名称。此名称是通用服务名称,如 FTP 或 SNA,而不是该服务的特定实例的名称。
WSAGetServiceClassNameByClassIdWWSAGet 服务类名称比ClassId函数检索与指定类型关联的服务的名称。此名称是通用服务名称,如 FTP 或 SNA,而不是该服务的特定实例的名称。
WSAHtonlWSAHtonl 函数将u_long字节顺序转换为网络字节顺序。
WSAHtonsWSAHtons 函数将u_short从主机字节顺序转换为网络字节顺序。
WSAInstallServiceClassAWSAInstall 服务类函数在命名空间中注册服务类架构。
WSAInstallServiceClassWWSAInstall 服务类函数在命名空间中注册服务类架构。
WSAIoctlWSAIoctl 函数控制套接字的模式。
WSAIsBlocking此功能已按照 Windows 套接字 2 规范 2.2.0 版本删除。
WSAJoinLeafWSAJoinLeaf 函数将叶节点加入到多点会话中,交换连接数据,并基于指定的 FLOWSPEC 结构指定所需的服务质量。
WSALookupServiceBeginAWSALookupServiceBegin 函数启动受 WSAQUERYSET 结构中包含的信息约束的客户端查询。
WSALookupServiceBeginWWSALookupServiceBegin 函数启动受 WSAQUERYSET 结构中包含的信息约束的客户端查询。
WSALookupServiceEnd在以前调用 WSALookupServiceBegin 和 WSAlookupServiceNext 之后,调用 WSALookupServiceend 函数以释放句柄。
WSALookupServiceNextAWSALookupServiceNext 函数是在从上一个调用 WSALookupServiceBegin 获取句柄后调用的,以便检索请求的服务信息。
WSALookupServiceNextWWSALookupServiceNext 函数是在从上一个调用 WSALookupServiceBegin 获取句柄后调用的,以便检索请求的服务信息。
WSANSPIoctl使开发人员能够对注册命名空间进行 I/O 控制调用。
WSANtohlWSANtohl 函数将u_long从网络字节顺序转换为主机字节顺序。
WSANtohsWSANtohs 函数将u_short从网络字节顺序转换为主机字节顺序。
WSAPollWSAPoll 函数确定一个或多个套接字的状态。
WSAProviderConfigChangeWSAProviderConfigChange 函数在更改提供程序配置时通知应用程序。
WSARecv从连接的套接字或无边界无连接套接接收数据。
WSARecvDisconnectWSARecvDisconnect 功能终止套接的接收,并在套接字面向连接时检索断开连接数据。
WSARecvFrom接收数据报并存储源地址。
WSARemoveServiceClassWSARemoveServiceClass 函数从注册表中永久删除服务类架构。
WSAResetEventWSAResetEvent 函数将指定事件对象的状态重置为非信号。
WSASend在连接的套接字上发送数据。
WSASendDisconnectWSASendDisconnect 函数启动套接字的连接终止并发送断开连接数据。
WSASendMsg从已连接和未连接的套接字发送数据和可选控制信息。注意:此功能是特定于 Microsoft 的 Windows 套接字规范的扩展。.
WSASendTo在适用的情况下,使用重叠的 I/O 将数据发送到特定目标。
WSASetBlockingHook此功能已按照 Windows 套接字 2 规范 2.2.0 版本删除。
WSASetEventWSASetEvent 函数将指定事件对象的状态设置为信号。
WSASetLastErrorWSASetLastError 函数设置可以通过 WSAGetLast 错误函数检索的错误代码。
WSASetServiceAWSASetService 函数在一个或多个命名空间中注册或从注册表中删除服务实例。
WSASetServiceWWSASetService 函数在一个或多个命名空间中注册或从注册表中删除服务实例。
WSASocketAWSASocket 函数创建绑定到特定传输服务提供商的套接字。
WSASocketWWSASocket 函数创建绑定到特定传输服务提供商的套接字。
WSAStartup通过进程启动使用 Winsock DLL。
WSAStringToAddressAWSAStringToAddress 函数将标准文本表示形式的网络地址转换为其以袜子结构形式的数字二进制形式,适合传递到使用此类结构的 Windows 套接字例程。
WSAStringToAddressWWSAStringToAddress 函数将标准文本表示形式的网络地址转换为其以袜子结构形式的数字二进制形式,适合传递到使用此类结构的 Windows 套接字例程。
WSAUnhookBlockingHook此功能已按照 Windows 套接字 2 规范 2.2.0 版本删除。
WSAWaitForMultipleEvents当一个或多个指定事件对象处于信号状态、时分时间隔到期或执行 I/O 完成例程时返回。

2. 数据结构信息(Structures

标题描述
AFPROTOCOLSAFPROTOCOLS 结构提供应用程序程序员可以限制查询的协议列表。AFPROTOCOLS 结构仅用于查询目的。
BLOB从二进制大对象派生的 BLOB 结构包含有关数据块的信息。
fd_setFd_set套接字(Winsock)函数和服务提供商使用该结构将套接字放入一组。
HOSTENT函数使用主机结构来存储有关给定主机的信息,如主机名、IPv4 地址等。
in_addr该in_addr表示 IPv4 互联网地址。
LINGER维护有关特定套接字的信息,指定当数据排队要发送和在套接字上调用关闭套接功能时,该套接字应如何运行。
PROTOENT原型结构包含对应于给定协议名称的名称和协议编号。
QOSQOS 结构提供了支持 QOS 的应用程序为特定流上发送和接收流量指定服务质量参数的方法。
SERVENT服务结构用于存储或返回给定服务名称的名称和服务编号。
TIMEVAL时间值结构用于指定时间间隔。它与伯克利软件分发 (BSD) Time.h 头文件关联。
WSACOMPLETION指定对注册命名空间的 I/O 控制调用的完成通知设置。
WSADATA包含有关 Windows 套接字实现的信息。
WSANAMESPACE_INFOA包含命名空间提供程序的所有注册信息。
WSANAMESPACE_INFOEXA包含命名空间提供程序的所有注册信息。
WSANAMESPACE_INFOEXW包含命名空间提供程序的所有注册信息。
WSANAMESPACE_INFOW包含命名空间提供程序的所有注册信息。
WSANETWORKEVENTSWSANETWORKEVENTS 结构用于存储套接字有关网络事件的内部信息。
WSANSCLASSINFOAWSANSCLASSINFO 结构为特定的 Windows 套接字命名空间提供单独的参数信息。
WSANSCLASSINFOWWSANSCLASSINFO 结构为特定的 Windows 套接字命名空间提供单独的参数信息。
WSAOVERLAPPED在重叠的 I/O 操作启动及其后续完成之间提供通信介质。
WSAPOLLFD存储 WSAPoll 函数使用的套接字信息。
WSAPROTOCOL_INFOA用于存储或检索给定协议的完整信息。
WSAPROTOCOL_INFOW用于存储或检索给定协议的完整信息。
WSAPROTOCOLCHAINWSAPROTOCOLCHAIN 结构包含包含协议链的目录条目标识符的计数列表。
WSAQUERYSET2A提供有关给定服务的相关信息,包括服务类 ID、服务名称、适用的命名空间标识符和协议信息,以及服务侦听的一组传输地址。
WSAQUERYSET2W提供有关给定服务的相关信息,包括服务类 ID、服务名称、适用的命名空间标识符和协议信息,以及服务侦听的一组传输地址。
WSAQUERYSETA提供有关给定服务的相关信息,包括服务类 ID、服务名称、适用的命名空间标识符和协议信息,以及服务侦听的一组传输地址。
WSAQUERYSETW提供有关给定服务的相关信息,包括服务类 ID、服务名称、适用的命名空间标识符和协议信息,以及服务侦听的一组传输地址。
WSASERVICECLASSINFOAWSASERVICECLASSINFO 结构包含有关指定服务类的信息。对于 Windows 套接字 2 中的每个服务类,都有一个 WSASERVICECLASSINFO 结构。
WSASERVICECLASSINFOWWSASERVICECLASSINFO 结构包含有关指定服务类的信息。对于 Windows 套接字 2 中的每个服务类,都有一个 WSASERVICECLASSINFO 结构。
WSAVERSIONWSAVERSION 结构在 Windows 套接字中提供版本比较。

 


更多相关函数请参考 Windows Sockets 2 ,其中包含头文件有:

有关此技术的编程指导,请参见:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值