窗口 – 可以判断一个进程中是否已经调用了WSAStartup?
发布时间:2020-12-13 20:11:12 所属栏目:Windows 来源:网络整理
导读:我开始编写一个使用套接字的ActiveX控件. 使用此控件的应用程序可能也可能不使用套接字. 我的控制是否可以告诉WSAStartup是否已被调用? 如果不是,叫它.有一点测试显示,多次调用WSAStartup. 但是如果请求不同的winsock版本会怎么样?这会打破其他部分的应用
我开始编写一个使用套接字的ActiveX控件.
使用此控件的应用程序可能也可能不使用套接字. 如果不是,叫它.有一点测试显示,多次调用WSAStartup.
是的,这是可能的.
这里是如何做的. bool WinsockInitialized() { SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (s == INVALID_SOCKET && WSAGetLastError() == WSANOTINITIALISED){ return false; } closesocket(s) return true; } int main() { //... if ( !WinsockInitialized() ) // Init winsock here... // Carry on as normal. // ... } 但这并不是真的有必要.随时调用WSAStartup是非常安全的.与WSACleanup()匹配的调用结束对WSAStartup()的每个成功调用也是安全的. 例如 // socket calls here would be an error,not initialized WSAStartup(...) // socket calls here OK WSAStartup(...) // more socket calls OK WSACleanup() // socket calls OK WSACleanup() // more socket calls error,not initialized (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 2018-2019-2 《网络对抗技术》Exp3免杀原理与实践
- 安装 – 在Windows Server 2012上安装AppFabric
- Windows Server 2016-Win Ser 2016已删减内容
- windows-phone-7 – wp7 PhoneCallTask??结果
- active-directory – Windows AD和Linux LDAP服务
- windows-server-2008-r2 – 无法在Windows Serve
- .net – 我们可以在Windows中更改事件路由策略吗
- 为什么覆盖WPF Window.OnRender方法无法绘制到屏
- Windows下安装PHP单元测试环境PHPUnit图文教程
- 在Windows Server 2003上安装PHP 5 – %1不是有
热点阅读