这个是接收端的代码
public class TestReceive { public static void main(String[] args) throws IOException { System.out.println("性感美女成熟老师上线啦!"); DatagramSocket ds=new DatagramSocket(9999); while(true){ //准备一个空的数据包接收 byte[] b=new byte[1024]; DatagramPacket dp=new DatagramPacket(b,0,b.length); //接收对方的数据包 放入dp ds.receive(dp); //取出数据 byte[] data=dp.getData(); String s=new String(data,0,dp.getLength()); System.out.println("学生对我说:"+s); if(s.equals("再见")){ System.out.println("学生 老师都离开了群聊"); break; } //老师回复 Scanner sc=new Scanner(System.in); System.out.println("老师:"); String str = sc.next(); byte[] bytes = str.getBytes(); /* * 需要四个数据 * 传送数据转为字节数据 *传送的长度 * 接收方的ip *接收方的端口号 * */ DatagramPacket dp2=new DatagramPacket(bytes,bytes.length, InetAddress.getByName("localhost"),8888); ds.send(dp2); } } }
这个是客户端(发送端)的代码
public class TestSend { public static void main(String[] args) throws IOException { System.out.println("宝贝学生上线啦!"); //指定发送方自己端口号 指定数据包 DatagramSocket ds=new DatagramSocket(8888); while(true){ Scanner sc=new Scanner(System.in); System.out.println("学生:"); String str = sc.next(); byte[] bytes = str.getBytes(); /* * 需要四个数据 * 传送数据转为字节数据 *传送的长度 * 接收方的ip *接收方的端口号 * */ DatagramPacket dp=new DatagramPacket(bytes,bytes.length, InetAddress.getByName("localhost"),9999); //发送 ds.send(dp); if(str.equals("再见")){ System.out.println("学生离开了群聊"); break; } //接受老师传回来的数据 byte[] b=new byte[1024]; DatagramPacket dp2=new DatagramPacket(b,b.length); ds.receive(dp2); //取出数据 byte[] data=dp2.getData(); String s=new String(data,0,data.length); System.out.println("老师对我说:"+s); } } }