由于我这里只有一台电脑,所以聊天对象的IP地址都是一样的,只是改了下端口号

public class MyClient1 {
public static void main(String[] args) throws IOException {
new Thread() {
public void run() {
try {
DatagramSocket socket = new DatagramSocket(8888);


while (true) {
byte[] bytes = new byte[1024];
DatagramPacket packet = new DatagramPacket(bytes, 0, bytes.length);
socket.receive(packet);
InetAddress address = packet.getAddress();
String hostAddress = address.getHostAddress();
byte[] data = packet.getData();
String msg = new String(data, 0, data.length);
System.out.println("ip:" + hostAddress + " 端口号" + packet.getPort() + "发来信息: " + msg);

}
} catch (IOException e) {
e.printStackTrace();
}

}
}.start();

SendMessage();
}

private static void SendMessage() throws IOException {
DatagramSocket socket = new DatagramSocket();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
InetAddress localHost = InetAddress.getLocalHost();

while (true) {
byte[] bytes = new byte[1024];
String msg = reader.readLine();
byte[] bytes1 = msg.getBytes();
DatagramPacket packet = new DatagramPacket(bytes1, 0, bytes1.length, localHost, 6666);
socket.send(packet);
if (msg.equals("886")) {
break;
}
}
}
}
public class MyClient2 {
public static void main(String[] args) throws IOException {
new Thread(){
@Override
public void run() {
try {
DatagramSocket socket = new DatagramSocket(6666);


while (true) {
byte[] bytes = new byte[1024];
DatagramPacket packet = new DatagramPacket(bytes,0,bytes.length);
socket.receive(packet);
InetAddress address = packet.getAddress();
String hostAddress = address.getHostAddress();
byte[] data = packet.getData();
String msg = new String(data, 0, data.length);
System.out.println("ip:"+hostAddress+" 端口号"+packet.getPort()+"发来信息: "+msg);

}
} catch (IOException e) {
e.printStackTrace();
}

}
}.start();
SendMessage();
}

private static void SendMessage() throws IOException {
DatagramSocket socket = new DatagramSocket();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
InetAddress localHost = InetAddress.getLocalHost();
while (true) {
byte[] bytes = new byte[1024];
String msg = reader.readLine();
byte[] bytes1 = msg.getBytes();
DatagramPacket packet = new DatagramPacket(bytes1, 0, bytes1.length, localHost, 8888);
socket.send(packet);
if (msg.equals("886")) {
break;
}
}
}
}