我有套接字通信问题 - > SIP服务器和Android设备。 我无法通过大于800字节的TCP发送SIP数据包。如果数据包是< 800字节一切都OK。在尝试发送SIP数据包之前建立了成功的TCP握手,但仍然没有。 我这样发送数据;
Socket socket = new Socket(ip,port);
OutputStream out =new OutputStream(socket.getOutputStream());
out.flush();
out.write(msg);
发送功能没有问题。奇怪的是,在从用于SIP分组的设备发送之后,一些分组被递送到服务器分钟。 800字节。 如果我们尝试发送其他数据而不是带有包大小的SIP> 800字节一切正常,服务器接收它。问题仅在于SIP数据包> 800字节。此问题不适用于所有Android设备。例如: Galaxy s plus - 问题。 Nexus 4 - 问题。 Nexus s - 没问题。等等。 如果我将SIP数据包分成两部分,问题就解决了,但是我想知道为什么不刷新SIP数据并立即发送其他数据。应该没有任何区别。
答案 0 :(得分:1)
您没有提供有关版本的信息,但我打赌您在Android 4.0中遇到了问题。*。
我还打赌只有在TCP上使用端口5060时才会出现问题。
这是Android版本中的已知问题,目前的解决方法是更新到Android 4.1(并且您不能要求用户这样做!)或者避免这些设置。 任何其他端口或UDP都可以工作。
你可以在这里找到一个bug report。