ソケット通信に問題があります - > SIP サーバーと Android デバイス。800 バイトを超える TCP 経由で SIP パケットを送信できません。パケットが 800 バイト未満であれば、すべて問題ありません。SIP パケットの送信を試行する前に確立された TCP ハンドシェイクが成功しましたが、まだ何も送信されていません。このようにデータを送信します。
Socket socket = new Socket(ip,port);
OutputStream out =new OutputStream(socket.getOutputStream());
out.flush();
out.write(msg);
送信機能に問題はありません。奇妙なことに、SIP パケットが 800 バイトを超える場合、デバイスから送信されてから数分後に一部のパケットがサーバーに配信されます。パケットのサイズが 800 バイトを超える SIP 以外のデータを送信しようとすると、すべて問題なくサーバーが受信します。問題は、800 バイトを超える SIP パケットのみです。この問題は、すべての Android デバイスで発生するわけではありません。例: Galaxy s plus – 問題。Nexus 4 – 問題。Nexus s – 問題ありません。SIP パケットを 2 つの部分に分割すると問題は解決しますが、SIP データがフラッシュされず、他のデータがすぐに送信される理由を知りたいです。違いはないはずです。