我在这里有一个奇怪的问题。我正在Raspberry上用C ++编写一个小型服务器应用程序,而在Android上运行的商业程序就是用来与其连接的。交换的数据是非常小的包装,用于控制技术设备的位置。我的程序运行良好,我建立了一个标准的TCP / IP套接字,将其绑定到一个地址,开始侦听,并且当客户端发出SYN信号时,我接受了它。然后客户端发送请求,我发送答案,所有潜在的错误消息和套接字错误都将受到监视。从客户端到服务器的通信与使用相同协议的其他程序看起来像这样(一切正常):
客户端> SYN
SYN ACK <服务器
客户端>确认
客户端PSH ACK ...一些请求...
ACK <服务器
PSH ACK ...一些答复... ,依此类推。这对于使用相同协议的其他程序可以正常工作,但不适用于Android 7平板电脑上的程序。原因是平板电脑上的客户端在收到服务器的第一个答复时立即发送FIN,ACK和SYN。客户已收到答复并愉快地进行了处理,没有任何错误-FIN没有明显的原因!那可能是一个错误,但我无权访问客户端代码。除了在每次从服务器写入后再次调用“接受”之外,是否有解决方法来解决此问题?提前非常感谢...