最近在做一个通讯的项目,服务器每隔2s发送一个心跳包,客户端也会回一个,确认连接。
但是在客户端多次断线重连后,有一定几率会出现以下状况:
客户端与服务器成功连接,同时客户端可以接收到服务器发送的心跳包,但不发送返回包。
同时客户端任何信息都无法发送。
经过测试已知服务器在读输入流时被阻塞。
连接是用Socket获取输入输出流做的。
求问有没有谁知道问题在哪儿?
断线之后服务器在会读取你之前的没有再通信管道没有接收完的数据,在进行相应的程序逻辑处理,你断线之后重新连接之后保证程序可以继续上一次请求执行就应该不会阻塞了
每一个socket创建,都会有一通信通道建立,如果单方面关闭,并不能全部关闭。当你断线的时候,又重新连接,可能就有一端正在等待接收
。这只是本人的舆论,仅供参考!