新建两个工程,一个Send,一个Receive,先启动Receive,再启动Send,至此就可以双向通信
Send工程:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class Send {
//接收消息的端口
private static final int PORT_RECEIVE = 8080;
public static void main(String[] args) {
handler();
}
private static void handler() {
DatagramSocket sendSocket = null;
DatagramSocket receiveSocket = null;
try {
//实例化两个套接字,一个用于接收消息,一个用于发送消息
sendSocket = new DatagramSocket();
receiveSocket = new DatagramSocket(PORT_RECEIVE);
//实例化线程并启动,一个用于接收消息,一个用于发送消息
new Thread(new SendThread(sendSocket)).start();
new Thread(new ReceiveThread(receiveSocket)).start();
} catch (SocketException e) {
System.out.println("handler:异常!");
}
}
}
/*
* 发送消息的线程类
*/
class SendThread implements Runnable{
//将消息发送到指定端口和地址
private static final int PORT_SEND = 9090;
private static final String IP_SEND = "localhost&#