我的全新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();
}
}
});
硬件特征:平板电脑
型号:平板电脑Samsung Galaxy Tab S2,型号SM-T719N,8英寸-LTE,四核
Android:7.0
内核版本:3.10.84
SE for Android状态:正在执行
Knox版本:2.7.1