import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
/**
* 服务端
* */
public class Server {
@SuppressWarnings("resource")
public static void main(String[] args) throws Exception {
int potr=999;
Scanner sc = new Scanner(System.in);
//创建DatagramSocket发送和接收都需要用
DatagramSocket da = new DatagramSocket(potr);
while (true) {
//创建byte数组 准备接收数据
byte []b2 = new byte[1024];
//创建通讯载体接收数据
DatagramPacket dp2 = new DatagramPacket(b2, b2.length);
da.receive(dp2);
//创建String数组存储数据
String st = new String(dp2.getData(),0,dp2.getLength());
System.out.println("客户说:"+st);
//比较数据是否需要退出
if(st.equals("bye")){
System.out.println("感谢您的使用,欢迎下次咨询");
break;
}
//拿到要发送的数据
String str = sc.nextLine();
//用byte数组把数据封装起来
byte[] b = str.getBytes();
//创建通讯载体:数据,数据的长度,自己的IP地址,目的地地址
DatagramPacket dp = new DatagramPacket(b, b.length, InetAddress.getLocalHost(), 888);
da.send(dp);
}
da.close();
}
}
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
/**
* 客户端
* */
public class Client {
public static void main(String[] args) throws Exception {
//创建DatagramSocket 发送和接收都需要用
DatagramSocket da = new DatagramSocket(888);
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
while (true) {
//拿到要发送的数据
String str = sc.nextLine();
//用byte数组把数据封装起来
byte[] b = str.getBytes();
//创建通讯载体:数据,数据的长度,自己的IP地址,目的地地址
DatagramPacket dp = new DatagramPacket(b, b.length, InetAddress.getLocalHost(), 999);
//发送数据包
da.send(dp);
//创建新的byte数组 准备接收数据
byte []b2 = new byte[1024];
//创建通讯载体接收数据
DatagramPacket dp2 = new DatagramPacket(b2, b2.length);
da.receive(dp2);
System.out.println("客服工作人员说:"+new String(dp2.getData(),0,dp2.getLength()));
//判断是否退出
if("bye".equalsIgnoreCase(str)){
break;
}
}
da.close();
}
}