我没有结果地搜查了interwebz.我们正面临着一些Android设备遭遇严重丢包的问题.为了给出一些背景知识,应用程序连接到特定的Wifi并查找在端口17216上广播的UDP数据包.这些数据包的大小为832字节,不包括包装的标头,并以每秒四个的常规速率发送.
我们只在两台设备上遇到了问题,一台低端的Turbox Rubik II平板电脑和一台ASUS Memo Pad HD 7.我们测试过的其他设备(手机和平板电脑)都按照规定的时间间隔收集数据包.
接收数据包的功能如下:
public void run()
{
while (isUDPServerRunning)
{
try
{
socket.receive(packet);
ProcessRawPacketData();
DisplayLoggingInfo();
}
catch (IOException e)
{
Log.e("receive", e.getMessage());
e.printStackTrace();
}
}
}
这是一个部分Runnable.这样创建套接字:
byte[] buffer = new byte[1024];
DatagramSocket socket;
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
在onCreate()我们的Service扩展方法中初始化套接字:
socket = new DatagramSocket(SERVERPORT);
Wifi模