关于创建socket失败的问题

昨天在调试程序的时候发现每次调用 socket函数总是失败,可令人奇怪的是这个模块之前运行一直是OK!拿到的错误码是 10106,宏是 WSAEPROVIDERNOTINIT,意思大概是“ 请求的服务没有被加载或者初始化”,网上搜索的结果都说是 WSAStartup没有调用,明显这种说法是不正确的,因为 WSAStartup没有调用或调用失败的话,返回的错误码应该是 WSANOTINITIALISED,而且我确实调用了这个函数,而且正确返回了,所以这个原因可以排除!由于我的网络部分是单独封装在一个模块中的,应用程序是静态链接这个模块,然后实现网络通信的。由于是静态链接,所以加载器会首先加载网络模块,我就想会不会是在网络模块加载之前有些必须的模块没有被加载,从而导致这个错误的?于是我就把静态加载改成了延时加载(动态加载也可以),首先加载其他模块,最后再加载网络模块。重新编译程序,运行,OK!问题解决!虽然事实证明了我的假想,但是我还是不太清楚究竟网络模块需要依赖哪些模块,因为WSAStartup已经正确返回了,说明底层网络库已经被加载,否则,WSAStartup应该都会失败,等待高人指点!
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建socket失败可能是由于多种原因导致的。首先,需要排查以下几个可能的原因。 首先,可以检查网络连接是否正常。确保你的设备已连接到互联网,并且网络连接没有任何问题。可以通过尝试访问其他网站或应用程序来验证网络连接的正常性。 其次,可以检查防火墙设置。防火墙可能会阻止程序与外部服务器建立连接。可以通过查看防火墙状态和关闭防火墙来排除这个问题。 另外,还可以检查代码中的错误。创建socket时可能会出现一些常见的错误,比如IP地址或端口号的错误输入,或者有其他程序正在占用相同的端口号。可以仔细检查代码中的相关部分,确保输入正确并避免端口冲突。 最后,还可以查看操作系统的限制。有些操作系统可能会限制对某些端口的访问或者限制创建过多的socket连接。可以查阅操作系统相关的文档,了解是否有任何限制,并根据需要进行相应的调整。 综上所述,创建socket失败可能是由于网络连接问题、防火墙设置、代码错误或操作系统限制等原因导致的。建议逐一排查这些可能的原因,并根据具体情况进行调整和解决。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [达梦error:[-70028]:创建SOCKET连接失败](https://blog.csdn.net/Penrosee/article/details/125181247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [演示如何使用Python和PyLoRa库在LoRa设备之间进行通信](https://download.csdn.net/download/weixin_44609920/88217590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值