网络编程—代码—UDP数据报传输

时间:2022-07-03 10:37:09

UDP:数据报传输

1、接收端

public class Udps { //接收端 

public static void main(String[] args) throws IOException { 

//1.准备接收数据报的箱子

byte[] by = new byte[1024];

DatagramPacket dp = new DatagramPacket(by,by.length); 

//2创建套接字,绑定到相应的端口去接收数据报
DatagramSocket ds = new DatagramSocket(8803); //3.接收数据报
ds.receive(dp); //4.处理操作接收到的数据4属性
System.out.println(new String(dp.getData(),0,dp.getLength())+dp.getPort()+dp.getSocketAddress()); //5.准备反馈的信息,及基本属性
String replay = "我是服务器,欢迎登录!";
SocketAddress ia = dp.getSocketAddress(); //6将要发送的数据装箱
DatagramPacket dpr = new DatagramPacket(replay.getBytes(),replay.getBytes().length,ia); //7.发送信息
ds.send(dpr);
//8.关闭套接字
ds.close(); } }

2、发送端

public class Udpc { //发送端

public static void main(String[] args) throws IOException {

//1准备要发送的数据内容
String send = "我是客户端,我请求登录!"; //2创建装箱包
DatagramPacket dp = new DatagramPacket(send.getBytes(),send.getBytes().length,InetAddress.getLocalHost(),8803); //3创建套接字端口发送数据报
DatagramSocket ds = new DatagramSocket(); //4.发送数据
ds.send(dp); //5准备接受返回的信息
byte[] by = new byte[1024]; //6.准备接受的装箱的包
DatagramPacket dpr =new DatagramPacket(by,by.length); //7接受信息
ds.receive(dpr); //8处理接受到的信息4属性
System.out.println(new String(dpr.getData(),0,dpr.getLength())+dpr.getPort()+dpr.getSocketAddress()); //关闭套接字
ds.close(); } }