问题如下: 客户端登陆tcp成功之后,闲置几分钟,再点击发送信息时,此时能发送信息出去,socket连接也是正常的,但时服务端并没有接收到任何信息,发送信息后再次点击,客户端就会断开连接了(我写了判定条件来看socket的链接状况)。
服务器是ubuntu,用c++配合boost库写了一个后端处理程序,客户端用qt,客户端与服务端建立tcp连接后会交互文本信息。一开始我以为是我服务端代码有问题,服务端一开始是阻塞读取,bug一直找不到,我就把服务端代码全重构,改成了线程池配合异步IO,把代码写了一堆try去抓取错误,结果还是一样的问题(出错误时,我用其他客户端再次登录处理都没问题,也就是服务端代码是一直在跑的)。qt这边socket我也一直在改,我还加入了心跳机制,keeplive等等(chatgpt、豆包等提供的解决方案),但还是不行。今天我重开一个项目,就画一个按钮,点击就发送一个字符串,没有任何其他处理功能。照样几分钟就断开了。
服务器是ubuntu,用c++配合boost库写了一个后端处理程序,客户端用qt,客户端与服务端建立tcp连接后会交互文本信息。一开始我以为是我服务端代码有问题,服务端一开始是阻塞读取,bug一直找不到,我就把服务端代码全重构,改成了线程池配合异步IO,把代码写了一堆try去抓取错误,结果还是一样的问题(出错误时,我用其他客户端再次登录处理都没问题,也就是服务端代码是一直在跑的)。qt这边socket我也一直在改,我还加入了心跳机制,keeplive等等(chatgpt、豆包等提供的解决方案),但还是不行。今天我重开一个项目,就画一个按钮,点击就发送一个字符串,没有任何其他处理功能。照样几分钟就断开了。