package QWE.WE.E;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.Scanner;
public class ChatRoom {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入聊天服务器当前启动端口:" );
int serverPort = sc.nextInt();
System.out.println("输入聊天服务发送信息对象的目标端口号:");
int targetPort = sc.nextInt();
System.out.println("初始化完毕!!!");
try {
DatagramSocket socket = new DatagramSocket(serverPort);
new Thread(new ChatReceiver(socket),"接收服务").start();
new Thread(new ChatSend(socket,targetPort),"发送服务").start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package QWE.WE.E;
import java.net.*;
public class ChatReceiver implements Runnable{
private DatagramSocket server;
public ChatReceiver(DatagramSocket server){
this.server=server;
}
@Override
public void run() {
try {
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf,buf.length);
while(true) {
server.receive(packet);
String str = new String(packet.getData(),
0, packet.getLength());
System.out.println("收到" + packet.getAddress()
+":"+packet.getPort()+"发送的数据:"+str);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
package QWE.WE.E;
import java.net.*;
import java.util.Scanner;
public class ChatSend implements Runnable{
private DatagramSocket client;
private int targetPort;
public ChatSend(DatagramSocket client,int targetPort){
this.client = client;
this.targetPort = targetPort;
}
@Override
public void run() {
try {
Scanner sc = new Scanner(System.in);
while (true) {
String data = sc.nextLine();
byte[] buf = data.getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, InetAddress.getByName("127.0.0.255"), targetPort);
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}