网络编程(VS2015)WSACleanup

WSACleanup 清理,成功返回0,可用WSAGetLastError来获取错误码。在多线程环境中,调用此函数将终止所有线程的套接字。

int WSACleanup(void);

Return value

The return value is zero if the operation was successful. Otherwise, the value SOCKET_ERROR is returned, and a specific error number can be retrieved by calling WSAGetLastError.

需要注意:
当调用了WSACleanup,在此进程中任何挂起的或者异步的套接字调用都会取消,而且不会发出通知消息也不会设置事件对象。overlapped(这个单词怎么翻译才算好?)的也是。

为了使挂起的数据发送出去,应用程序应该使用shutdown来关闭连接,然后一直等待关闭完成再调用closesocket和WSACleanup。

和WSAStartup一样,WSACleanup也不能在DllMain中调用(可能会死锁)。

由于WSACleanup()的调用会导致将socket的初始化资源从Windows Sockets的实现中注销,并且该实现释放为应用程序或DLL分配的任何资源,因此,在编写ie空间的时候没有调用WSAStartUP(),而又调用了WSACleanup(),或导致页面不正常请求中断,致使ie浏览出现不可预见的意外......

猜你喜欢

转载自blog.csdn.net/qq_33263769/article/details/88680019