SIOCATMARK:确实是否所有的带外数据都已被读入。这个命令仅适用于SOCK_STREAM类型的套接口,且该套接口已被设置为可以接收带外数据(SO_OOBINLINE)。如无带外数据等待读入,则该操作返回TRUE真。否则的话返回FALSE假,下一个recv()或recvfrom()操作将检索“标记”前一些或所有数据。应用程序可用SIOCATMARK操作来确定是否有数据剩下。如果在“紧急”(带外)数据前有常规数据,则按序接收这些数据(请注意,recv()和recvfrom()操作不会在一次调用中混淆常规数据与带外数据)。argp指向一个BOOL型数,ioctlsocket()在其中存入返回。
兼容性:
本函数为Berkeley套接口函数ioctl()的一个子集。其中没有与FIOASYNC等价的命令,SIOCATMARK是套接口层次支持的唯一命令。
返回:
成功后,ioctlsocket()返回0。否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码。
错误代码:
WSANOTINITIALISED:在使用此API之前应首先成功地调用WSAStartup()。
WSAENETDOWN:WINDOWS套接口实现检测到网络子系统失效。
WSAEINVAL:cmd为非法命令,或者argp所指参数不适用于该cmd命令,或者该命令
不适用于此种类型的套接口。
WSAEINPROGRESS:一个阻塞的WINDOWS套接口调用正在运行中。
WSAENOTSOCK:描述字不是一个套接口。
参见:
socket(), setsockopt(), getsockopt(), WSAAsyncSelect().
Socket error 0 - Directly send error
Socket error 10004 - Interrupted function //call 操作被终止
Socket error 10013 - Permission denied //c访问被拒绝
Socket error 10014 - Bad address //c地址错误
Socket error 10022 - Invalid argument //参数错误
Socket error 10024 - Too many open files // 打开太多的sockets
Socket error 10035 - Resource temporarily unavailable // 没有可以获取的资料
Socket error 10036 - Operation now in progress // 一个阻塞操作正在进行中
Socket error 10037 - Operation already in progress // 操作正在进行中
Socket error 10038 - Socket operation on non-socket //非法的socket对象在操作
Socket error 10039 - Destination address required //目标地址错误
Socket error 10040 - Message too long //数据太长
Socket error 10041 - Protocol wrong type for socket //协议类型错误
Socket error 10042 - Bad protocol option // 错误的协议选项
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-46987-6.html
更像是一个小帮派的首领
en~~~确实假货