inet_ntop使用注意事项

原创
小哥 2年前 (2023-05-20) 阅读数 42 #大杂烩

windows平台,用C++我编写了一个控制台模式的网络服务程序来启用TCP监听,

等待客户端连接并推送数据。结构不复杂,需要本地测试OK。

发布到服务器并运行时,发生了奇怪的现象。弹出控制台窗口后,程序被阻止

找出堵塞物的位置,在一些可疑的地方cout输出时,不显示任何结果。

后来,发布了调试版本,包括main的第一行cout没有任何输出,我开始怀疑生活

所以所有的代码逻辑都被屏蔽了,只留下一个空的外壳和cout输出没有问题,似乎还是代码引起的,

就这样,一点一点地放开代码,最后导航到 inet_ntop 此函数在编码时确实与其总和匹配 inet_ntoa 犹豫片刻后,

因为这个函数比较新,可以同时支持两者ipv4和ipv6所以我没有多想。

谁知道呢,这个小功能需要我几个小时来跟踪位置。

后来在查阅资料后发现,这个功能需要windows2008以上服务器系统只能正常使用,

部署的服务器是旧的2003系统在程序启动期间加载库函数时可能遇到某种异常,

奇怪的是,这个异常没有提示,却悄悄地弹出了窗口,

什么都不做,什么都不说,或者崩溃,但你崩溃了!!!

虽然现在仍在使用17几年前没有更多的人使用操作系统,但此事件仍然提供了一些见解:

1 使用新功能替换旧版本时,注意检查并确认适用的平台版本

2 在早期的操作系统版本中,许多程序异常(特别是在测试期间)与系统版本有关

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门