nw-tcp bug的小理解

这两天遇到了tcp方面的bug感觉对tcp的使用会有点帮助,所以写下来,

第一个是使用mynetopen之后模块会进入tcp connect过程,但是这个一般比较慢,所以设计成了异步的,问题就是,如果此时再发送mynetopen的话,是按照connect之后的逻辑处理的,也就是返回912(tcp连接已经存在),但是此时实际上是没有链接上的,如果是使用代码来处理的话,这里就会误判,所以需要处理在连接过程中发送open的返回码问题,
这个其实问题并不复杂,跟一下代码,就能知道该在哪里修改,
问题就是怎么修改,修改成什么样子,也就是解决方案如何?
710,也就是海清哥的方法是判断TCP的status,然后返回981(其他错误),原来的方案是判断isenable返回912,但是这样处理有一个问题,就是第一个open如果失败了怎么办,后面的open已经全部被抛弃了,那就是第一个失败了,整个就失败了,但是别人发送多个open的目的就是为了保证一次不行,再来一次的目的。个人感觉这个结局方案不是很完善。

还有一个就是发送数据之后,ack查询,返回的数据有误,原因是rev变量没有更新,rev这个变量是对方收到了多少个date,然后和本地的send对比,就可以得出有多少空间,但是rev没有更新,得修改底层的代码才行。有点麻烦,
tcp服务端在发送数据之后,客户端接收数据并且整理完成之后,会返回一个数字, 表示客户端收到了多少个数据,进行反馈,也叫作ack,也即是三次握手的第二次。然后服务器再根据ack进行二次处理。
现在的问题是客户端返回的ack数据没有在服务器端更新,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值