客户端套接字发送但未收到Silent Server套接字

时间:2012-06-12 14:51:10

标签: qt sockets tcp serversocket tcpsocket

我有一个客户端套接字,在连接握手完成后将图像数据推送到服务器套接字。并且服务器套接字处理它们而不响应任何内容

它可以运行几分钟。但有一段时间后,服务器套接字停止获取这些数据。我无法弄清楚为什么?在TCP中是否有这样的事情,如果客户端继续推送数据,服务器必须说些什么,否则对话会停止?

几年前我写了这段代码。并使其工作我使服务器返回字符串“ACK”响应。但是,如果我将其更改为任何字符串,它将起作用。

但现在我想弄明白为什么重建该计划。

1 个答案:

答案 0 :(得分:0)

与TCP的“单向”通信完全没问题,除非您需要发送方的接收方确认。但那是你的应用程序级协议。在传输级别,数据包仍然双向流动 - TCP在两个方向上保持序列号并向另一侧确认它们。这允许检测丢弃/重复分组和重新传输,从而提供流的可靠性。在连接握手期间协商的窗口大小和在对话生命期间更新的窗口大小允许TCP减慢快速发送器的速度,这会使缓慢的接收器淹没。

您真正需要做的是使用tcpdump(1)wireshark之类的嗅探器记录TCP连接,并找出“套接字停止获取这些数据”时线路上发生的情况。