UDP实现数据传输
正如之前所说的UDP协议传输速率很快,但是相对来说并不安全(一问三不知),下面是实现的代码:
package Web;
import java.io.IOException;
import java.net.*;
public class SendDemo {
/*
发送端
*/
public static void main(String[] args){
//负责发送数据报
try {
DatagramSocket datagramSocket=new DatagramSocket();
byte[] bytes="雷猴".getBytes();
DatagramPacket datagramPacket = new DatagramPacket(bytes,0,bytes.length, InetAddress.getByName("127.0.0.1"),9999);
datagramSocket.send(datagramPacket);
datagramSocket.close();
} catch (SocketException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
发送端只管向外扔数据报,无论是否有接收对象是否发送成功都不会报错。
package Web;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class ReciveDemo {
/*
接收端
*/
public static void main(String[] args) {
try {
DatagramSocket datagramSocket=new DatagramSocket(9999);
//封装一个数据报对象,用来接收数据
byte[] bytes=new byte[100];//用来封装数据
DatagramPacket datagramPacket=new DatagramPacket(bytes,0,bytes.length);
datagramSocket.receive(datagramPacket);//接收数据
//同时也是实际接收到的数组长度
String s=new String(bytes,0,datagramPacket.getLength());
System.out.println(s);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}