为什么要重复收到服务端同样的数据?(200分)

  • 主题发起人 主题发起人 samxu
  • 开始时间 开始时间
S

samxu

Unregistered / Unconfirmed
GUEST, unregistred user!
敬请高手指点一下。
我写了一个多线程的服务器,为什么有时客户端会收到两遍数据?
譬如说客户端发了一个begin给服务端,服务端收到后发送end给客户端,为什么有时候
会出现客户端连续收到了两次end的数据??
这问题困扰我一年多了,请高手指点迷津,谢谢!
 
一般情况下服务端和客户端应该经过以下四个过程:
①客户端请求传输过程;②服务端处理过程;③服务端应答传输过程;④客户端处理应答过程。
你的问题,我推断有两种可能:
1> 客户端没有及时应答,例如堵塞或者延时,造成服务端再次发送应答信息要求客户端响应;
2> 既然你用的多线程,就可能是多个线程发出请求,造成服务端多次被动响应,在前一个线程没有
回应服务端以前,可能服务器因接受又一个线程的请求而再次发送数据;
 
谢谢,你真是热心肠啊,真是太感谢你了。
不过具体应该怎么处理呢?
我写的服务端发送数据的时候是不判断客户端是否已经收到,怎样才能解决服务端不多次
响应,而只响应一次呢?
 
后退
顶部