新创建的Socket返回的描述符和刚刚断开的Socket的描述符相同

这两天在跟踪一个故障,网络部分的,逻辑有点复杂,最后定位到断开一个TCP连接再快速创建一个新的TCP连接(WIndows窗口绑定的网络,主线程中操作)。这个新创建的Socket返回的描述符和刚刚断开的Socket的描述符相同,导致断开的Socket返回的FD_CLOSE消息将新创建的Socket又给关闭了。程序逻辑是和Socket描述符相关的。为了最简单的解决(项目后期),在断开连接后有1S定时器,定时器到了后再创建新的连接(目的是为了等待刚刚关闭的出发的FD_CLOSE消息执行完毕)。FD_CLOSE消息肯定是在TIMER消息之前,所以不会有问题。测试发现如果是有定时器比较难发现新建的和刚刚断开的连接的描述符是相同的,不过和以前的还是有相同的(已经不影响我们的程序逻辑了)。如果马上新连接,在某种情况下还是比较常见的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值