inet_ntop使用注意事项

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

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

等发布到服务器上运行时,发生了诡异的现象,弹出控制台窗口后,程序就被阻塞了……

为了搞清楚阻塞在哪个位置,在一些可疑之处cout输出,结果一个都没有显示。

后来再发布调试版,连main的第一行cout都没输出,开始怀疑人生了……

于是将所有代码逻辑屏蔽,只留一个空壳和cout输出,没有任何问题,看来还是代码导致,

就这样,一点点放开代码,最后定位到inet_ntop这个函数,编码时的确在其和inet_ntoa之间犹豫了一下,

因为这个函数较新且能同时支持ipv4和ipv6,所以也没多想。

谁知这个小小的函数将花费我几个小时来追踪定位。

后来查阅资料得知,该函数需要windows2008以上服务器系统才能正常使用,

而部署的服务器正是一台老旧的2003系统,大概是程序启动时加载库函数发生了某种异常,

奇怪的是这中异常没有任何提示,而是弹开窗口后静静的,

什么也不做,什么也不说,也不崩溃,但你却崩溃了!!!

虽然现在仍在使用17年前的操作系统的人再没谁了,但是这件事情仍然能得到一些启示:

1 在使用新函数代替旧函数时注意查阅确认适用平台版本

2 在较早的操作系统发布程序,很多程序异常(特别是测试时没问题)跟系统版本有关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值