多线程-网络通信协议
UDPSend
public static void main(String[] args) throws IOException { Scanner sc=new Scanner(System.in); //创建快递公司对象 DatagramSocket ds=new DatagramSocket(); //明确要发送的地址 InetAddress inet=InetAddress.getByName("127.0.0.1"); //明确要发送的内容 while(true){ byte[] bytes=sc.next().getBytes(); //创建打包对象,封装数据,明确目的地 DatagramPacket dp=new DatagramPacket(bytes, bytes.length,inet,8888); //发送数据包 ds.send(dp); } //释放资源 //ds.close(); }
UDPRecieve
public static void main(String[] args) throws IOException { //创建快递公司对象,明确端口号 DatagramSocket ds=new DatagramSocket(8888); //创建字节数组等着接受数据 byte[] bytes =new byte[1024]; //创建拆包对象 while(true){ DatagramPacket dp=new DatagramPacket(bytes,bytes.length); //接受数据包 ds.receive(dp); //拆包 //获取发送端的ip地址 String ip=dp.getAddress().getHostAddress(); //获取发送端的端口号 int port=dp.getPort(); //获取数据长度 int len=dp.getLength(); System.out.println("ip地址为:"+ip+",端口号为:"+port+",发送的内容为:"+new String(bytes,0,len)); } //释放资源 //ds.close(); }
先执行UDPRecieve
再执行UDPSend

浙公网安备 33010602011771号