当前位置: 代码迷 >> Android >> android udp真是垃圾啊还是小弟我写得垃圾
  详细解决方案

android udp真是垃圾啊还是小弟我写得垃圾

热度:26   发布时间:2016-05-01 21:15:17.0
android udp真是垃圾啊还是我写得垃圾。
wince apple在局域网中国发送udp丢包率几乎为0。性能相当出色。而在android上丢包率在10%左右。真是头痛。代码如下:

public UdpClientSocket() {

this.host = "255.255.255.255";//改成目标IP,而不用广播效果也不明显。

try {
ds = new DatagramSocket();


} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// this.host=host;
}



public void send( byte[] bytes) {

DatagramPacket dp;
try {ds.setSendBufferSize(1);//这个加与不加效果不明显。
dp = new DatagramPacket(bytes, bytes.length,
InetAddress.getByName(this.host), 1024);
ds.send(dp);

} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



}
是哪里做的不好,它要丢这么多包,我已在多个android上测试过,都有相同的问题。

------解决方案--------------------
UDP本身就不保证传输数据的完整性,就一次握手。楼主可以试试三次握手的TCP。
------解决方案--------------------
UDP确实不是很可靠,他是不保证通信的成功性的,就是传输速度比TCP快一些。你为什么不用TCP呢。
  相关解决方案