码迷,mamicode.com
首页 > 其他好文 > 详细

关于 AfxSocketInit()

时间:2018-05-16 10:59:35      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:程序   一般来说   FN   分享   MF   为什么   rmi   初始化   setup   

  一般来说 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()

标签:程序   一般来说   FN   分享   MF   为什么   rmi   初始化   setup   

原文地址:https://www.cnblogs.com/MakeView660/p/9044545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!