Samsung SM719-丢弃IP碎片协议数据包-UDP

时间:2019-02-20 15:40:29

标签: android networking udp samsung-mobile

我的全新android 7.0三星银河S2出现以下问题

我有一个应用程序通过UDP套接字从黑盒设备接收数据,黑盒设备发送的数据是大型UDP数据包(MTU> 1500字节),并且此特定的平板电脑(三星Galaxy S2)正在丢弃响应来自黑匣子设备的数据包

我的应用程序的流程如下:
1.将平板电脑和Blackbox设置在同一WLan
2.通过UDP套接字连接到端口65000(已由黑盒固定)
3.将来自应用程序的数据报包发送到内容为“ hallo”和回车符的黑盒。
4.黑匣子设备将54kb作为单个UDP数据包发回给我

要考虑到: :由于UDP数据(blackbox->平板电脑)的有效载荷大于以太网帧之一(1480字节),因此网络以40帧IP碎片协议的系列传输该包

奇怪的是,与其他手机一样,udp包已在我的应用程序中收到,没有任何问题,三星正在丢弃数据包。以下代码正在运行,并且已经在其他手机上进行了测试。

    this.networkThreadHandler.post(new Runnable() {
        @Override
        public void run() {
            try {

                clientChannel = DatagramChannel.open();

                ByteBuffer buffer = ByteBuffer.wrap(messageBytes);
                InetSocketAddress serverAddress = new InetSocketAddress(address, port);

                ByteBuffer outputBuffer = ByteBuffer.allocate(6000000);

                //for(int i = 0; i<msgNumber; i++) {
                int bytesSent = clientChannel.send(buffer, serverAddress);
                Log.i(METHODTAG, "bytesSent: " + bytesSent);

                buffer.clear();
                clientChannel.receive(outputBuffer);
                outputBuffer.flip();

                int limits = outputBuffer.limit();
                byte bytes[] = new byte[limits];
                outputBuffer.get(bytes, 0, limits);
                String response = new String(bytes);
                Log.d(METHODTAG, "Server  responded: " + response);

                responseListener.onResponseReceived(response);

                //outputBuffer.clear();
                //outputBuffer = null;

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });   
  • 即使其他具有Android 7的三星手机,此代码也适用于其他三星设备和不同供应商以及Android版本从5.0到8.0的其他手机

硬件特征:平板电脑
型号:平板电脑Samsung Galaxy Tab S2,型号SM-T719N,8英寸-LTE,四核
Android:7.0
内核版本:3.10.84
SE for Android状态:正在执行
Knox版本:2.7.1

0 个答案:

没有答案