package 聊天程序设计;
import java.util.Scanner;
public class CharRoom {
public static void main(String[] args) {
System.out.println("欢迎您进入聊天系统");
Scanner in =new Scanner(System.in);
System.out.println("请输入本程序发送的端口号");
int sendPort=in.nextInt();
System.out.println("请输入本程序接受的端口号");
int receivePort=in.nextInt();
System.out.println("聊天系统启动");
new Thread(new SendTask(sendPort),"发送端任务").start();
new Thread(new ReceiveTask(receivePort),"接受端任务").start();
}
}
package 聊天程序设计;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class ReceiveTask implements Runnable {
private int receiveProt;
public ReceiveTask(int receiveProt) {
this.receiveProt = receiveProt;
}
@Override
public void run() {
try {
DatagramSocket ds = new DatagramSocket(receiveProt);
byte[]buf=new byte[1024];
DatagramPacket dp =new DatagramPacket(buf, buf.length);
while(true) {
ds.receive(dp);
String str=new String(dp.getData(),0,dp.getLength());
System.out.println("收到"+dp.getAddress().getHostAddress()+"--发送数据"+str);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package 聊天程序设计;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
public class SendTask implements Runnable {
private int sendPort;
public SendTask(int sendPort) {
this.sendPort = sendPort;
}
@Override
public void run() {
try {
DatagramSocket ds =new DatagramSocket();
Scanner in =new Scanner(System.in);
while(true) {
String data =in.nextLine();
byte[]buf=data.getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,
InetAddress.getByName("127.0.0.255"),sendPort);
ds.send(dp);
ds.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}