如题,服务端、客户端我都是通过socket实现的,通过抓包软件查看,每个tcp数据包都是要重发一次,这是什么问题呢?
查看资料得知,可能是tcp中的重传计时器的问题,该如何解决呢?
附图,数据包情况
查看资料得知,可能是tcp中的重传计时器的问题,该如何解决呢?
附图,数据包情况
解决方案 »
- 请解惑,谢谢!
- Picture Control控件
- 查询mib表时为什么有的表每列要加上对象的oid,例如[1.3.6.1.2.1.4.20.1.1.127.0.0.1] ,而有的不加[1.3.6.1.2.1.4.1.0]
- (missing ';' before identifier 'MMVERSION')错误如何解决
- C++中"*"有几种作用啊
- 我想在一个文本文件中插入字符串,其它字符不变,怎么编程?谢谢!
- 如何判断指针的值是否有效?
- 在VC里 #define PASCAL _stdcall 中的PASCAL 是什么?
- 桌面无响应的问题
- 看了快两周的vc++了,但是很糊涂。
- 一年后重回MFC,原来嵌入式依然可以MFC啊
- 什么叫熟悉TCP/IP协议?麻烦大家说说自己的理解
if(send(m_Socket, sBuffer, nLen, 0) == nLen)直接发送的一个819200大小的sBuffer实现的...
我看你是在本机上自己发自己收。我分析的是这样的:当接收缓冲区阻塞的时候,你发送的数据包发送给接收端,此时,接收端不能接收,也就是不能返回ACK,它也不能返回RST,所以就会不处理,这时候超时时间到,发送端以为接收端没收到,就又发了一个SYN,这样就重发了。我建议的是,提高接收线程的优先级,或者说降低发送线程的优先级。让接收端缓冲队列时刻保持能接收的状态。