SIP数据未通过Android TCP套接字刷新

时间:2013-04-15 12:38:48

标签: android sockets tcp sip

我有套接字通信问题 - > 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数据并立即发送其他数据。应该没有任何区别。

1 个答案:

答案 0 :(得分:1)

您没有提供有关版本的信息,但我打赌您在Android 4.0中遇到了问题。*。

我还打赌只有在TCP上使用端口5060时才会出现问题。

这是Android版本中的已知问题,目前的解决方法是更新到Android 4.1(并且您不能要求用户这样做!)或者避免这些设置。 任何其他端口或UDP都可以工作。

你可以在这里找到一个bug report