关于 AfxSocketInit()
Posted 我来乔23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 AfxSocketInit()相关的知识,希望对你有一定的参考价值。
一般来说 WASAtarup() 是应用程序调用的Windows Sockets dll的第一个函数,在调用任何Winsock Api之前,必须调用WSAStartup()进行初始化,最后调用WSACleanup()做清理工作。也就是 WSAStartup与 WSACleanup要配对使用。
MFC中的函数 AfxSocketInit() 包装了函数 WSAStartup(), 在支持WinSock的应用程序的初始化函数IninInstance()中调用AfxSocketInit()进行初始化,程序则不必调用WSACleanUp()。
如果你再次调用WSACleanup, 可能会出问题!
为什么呢?
可以看到,有这么一句,这里是有回调:
// setup for termination of sockets
pState->m_pfnSockTerm = &AfxSocketTerm;
而回调的具体内容如下:
void (AFXAPI *m_pfnSockTerm)(void); // set once initialized
可见,回调AfxSocketTerm中会WSACleanup~
以上是关于关于 AfxSocketInit()的主要内容,如果未能解决你的问题,请参考以下文章