WSASocket()简介_WSASocket()个人资料_WSASocket()微博_百科网
A-A+

WSASocket()简介_WSASocket()个人资料_WSASocket()微博

2016-11-30 11:00:42 科学百科 阅读 2 次

简述/WSASocket() 编辑

作用:创建一个与指定传送服务提供者捆绑的套接口,可选地创建和/或加入一个套接口组。
头文件header: Winsock2.h
所在库Library: Ws2_32.lib
原型:
   #include  <Winsock2.h>

          SOCKET WSAAPI WSASocket ( int af, int type, int
          protocol, LPPROTOCOL_INFO lpProtocolInfo, Group g,
          int iFlags);

参数说明:/WSASocket() 编辑

af:地址族描述。目前仅支持PF_INET格式,亦即ARPA Internet地址格式。
type:新套接口的类型描述。
protocol:套接口使用的特定协议,如果调用者不愿指定协议则定为0。
lpProtocolInfo:一个指向PROTOCOL_INFO结构的指针,该结构定义所创建套接口的特性。如果本参数非零,则前三个参数(af, type, protocol)被忽略。
g:套接口组的描述字。
iFlags:套接口属性描述。

返回值:/WSASocket() 编辑

若无错误发生,WSASocket()返回新套接口的描述字。否则的话,返回 INVALID_SOCKET,应用程序可定调用WSAGetLastError()来获取相应的错误代码。

错误代码:
WSANOTINITIALISED                在调用本API之前应成功调用WSAStartup()。
WSAENETDOWN                 网络子系统失效。
WSAEAFNOSUPPORT                不支持指定的地址族。
WSAEINPROGRESS                一个阻塞的WinSock调用正在进行中,或者服务提供者仍在处理一个回调函数
WSAEMFILE                                无可用的套接口描述字。
WSAENOBUFS                        无可用的缓冲区空间。套接口无法创建。
WSAEPROTONOSUPPORT        不支持指定的协议。
WSAEPROTOTYPE                指定的协议对于本套接口类型错误。
WSAESOCKTNOSUPPORT        本地址族不支持指定的套接口类型。
WSAEINVAL                                g参数非法。

另请参阅:  accept(), bind(), connect(), getsockname(),GETSOCKOPT(), setsockopt(), listen(), recv(),recvfrom(), select(), send(), sendto(),shutdown(), ioctlsocket()。

WSASocket()和socket()两个函数的区别/WSASocket() 编辑

winsock是socket的windows平台的实现。winsock是微软专门为windows操作系统开发的socket网络编程接口,而socket是通用网络编程接口。

socket() 函数创建一个通讯端点并返回一个套接口。但是在socket库中例程在应用于阻塞套接口时会阻塞。WSASocket()的发送操作和接收操作都可以被重叠使用。接收函数可以被多次调用,发出接收缓冲区,准备接收到来的数据。发送函数也可以被多次调用,组成一个发送缓冲区队列。可是socket()却只能发过之后等待回消息才可做下一步操作!