首页 > 解决方案 > 来自 TCP 客户端的奇怪行为(FIN ACK 后跟来自客户端的 SYN 请求)

问题描述

我这里有一个奇怪的问题。我正在 Raspberry 上用 C++ 编写一个小型服务器应用程序,而在 Android 上运行的商业程序旨在连接到它。交换的数据是非常小的数据包,用于技术设备的位置控制。我的程序工作正常,我设置了一个标准的 TCP/IP 套接字,将它绑定到一个地址,开始监听,当一个 SYN 信号来自客户端时,我接受它。然后客户端发送请求,我发送答案,所有潜在的错误消息和套接字错误当然都会被监控。使用相同协议的其他程序从客户端到服务器的通信如下所示(一切正常):

客户端 > SYN

SYN ACK < 服务器

客户端 > 确认

客户端 PSH ACK ... 一些请求 ...

确认<服务器

PSH ACK ...一些回复... <服务器

等等。这适用于使用相同协议的其他程序,但不适用于 Android 7 平板电脑上的程序。原因是平板上的Client在收到服务器的第一个回复时立即发送FIN、ACK后跟SYN。客户端收到回复并愉快地处理,没有任何错误——没有明显的FIN原因!这可能是一个错误,但我无权访问客户端代码。除了在每次从服务器写入后再次调用“接受”之外,还有其他解决方法吗????提前谢谢了 ...

标签: tcpserversignals

解决方案


推荐阅读