首页 > 其他 > 详细

关于 AfxSocketInit()

时间:2018-05-16 10:30:38      阅读:154      评论:0      收藏:0      [点我收藏+]

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!