您的位置:首页 > 其它

模拟UDP数据丢失

2015-09-08 21:46 344 查看
发送

package cn.itcast.udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.UnknownHostException;

/*
udp是一个不可靠(数据包可能会丢失)的协议

什么情况下数据包会出现丢失呢?
1.带宽不足 。
2.cpu的处理能力不足。

*/
public class SafeSender {

public static void main(String[] args) throws Exception {
//建立udp的服务
DatagramSocket socket = new DatagramSocket();
//准备数据,数据封装到数据中发送
DatagramPacket packet = null;
for(int i =  0 ; i< 10; i++){  //连续发送10个数据包
String data =i +"aaaaaaaaaaaaaaaaass";
packet = new DatagramPacket(data.getBytes(), data.getBytes().length, InetAddress.getLocalHost(), 9090);
//发送数据包
socket.send(packet);
}
//关闭资源
socket.close();
}

}


接收

package cn.itcast.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class SafeReceive {

public static void main(String[] args) throws IOException, Exception {
//建立udp的服务
DatagramSocket socket = new DatagramSocket(9090);

//建立空的数据包存储数据
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);

//不断接收数据包
while(true){
socket.receive(packet);
System.out.println(new String(buf,0,packet.getLength()));
Thread.sleep(10);
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  udp