jjzjj

wsacleanup

全部标签

c++ - Windows 套接字 WSACleanup C++

我在我的程序中使用套接字。由于我添加了WSAStartup。我的应用程序运行良好(它一直运行到收到停止信号为止)。收到信号后,它会停止问题,如果我在程序末尾编写WSACleanup函数,它会崩溃,如果我删除它,它会正常终止。谢谢 最佳答案 这是我的一个项目的摘录。初始化:#ifdefined(WIN32)WSADATAwsaData;WORDwVersionRequested=MAKEWORD(2,0);if(WSAStartup(wVersionRequested,&wsaData)!=0){LOG("WSAStartup()er

c++ - WSACleanup 和 atExit

通过atExit函数注册WSACleanup可以吗?我们有几个应用程序可以在代码中的不同点终止,因此我们希望避免在整个代码中到处放置WSACleanup。目前我们通过DllMain调用WSAStartup/WSACleanup因为我们有一个dll被所有这些应用程序使用。但是,Microsoft严格建议不要通过DllMain使用WSAStartup/WSACleanup,因为这会导致死锁。我们可以将WSAStarup移出DllMain,并在所有应用程序访问Windows套接字库之前在代码中的某个位置调用它。而且,一旦我们调用WSAStartup,我们就想使用atExit函数来注册对WSA

c++ - 对 `__imp_WSACleanup' 的 undefined reference

这是我使用winsock的第一个程序。如您所见,我有#include并链接ws2_32.dll,但代码仍然无法编译:#include#pragmacomment(lib,"ws2_32")classCInitSock{public:CInitSock(BYTEminorVer=2,BYTEmajorVer=2){//initializeWS2_32.dllWSADATAwsaData;WORDsockVersion=MAKEWORD(minorVer,majorVer);if(::WSAStartup(sockVersion,&wsaData)!=0){exit(0);}}//rele

sockets - WSAStartup 和 WSACleanup 的成本是多少?

我有一个c++win32程序,它使用套接字从服务器下载一些数据。在Windows上使用套接字之前,必须调用WSAStartup。MSDN说:“每次成功调用WSAStartup都必须调用WSACleanup。只有最终的WSACleanup函数调用才能执行实际的清理。”对我来说最简单的方法是每次从服务器下载少量数据时调用WSAStartup/WSACleanup。大多数情况下一次只有一个连接,因此WSACleanup将执行实际清理。这就是为什么我想知道WSAStartup和WSACleanup的成本是多少?我的意思是执行实际清理。如果与整个套接字连接相比,对WSAStartup和WSACl