最近学习了io流和网络,就做了个简易的聊天系统
public class ChatReceiver {
public static void main(String[] args) throws IOException {
//File file =new File("D:\\Program Files\\pp.txt");
String ip = "192.168.4.147";
DatagramSocket ds = new DatagramSocket(8082);
Date d = new Date();
SimpleDateFormat adf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat adf1 = new SimpleDateFormat("yyyyMMdd");
String d1=adf.format(d);
String d2=adf1.format(d);
String f1="D:\\Program Files\\"+d2+".txt";
BufferedWriter bw=new BufferedWriter(new FileWriter(f1,true));
byte[] b = new byte[128];
String msg = "";
// 获取标准输入流并包装为缓冲流
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
DatagramPacket dp = new DatagramPacket(b, 0, b.length);
// 首先接收一次发送方发送的消息
ds.receive(dp);
while (dp.getLength() > 0) {
msg = new String(dp.getData(), 0, dp.getLength());
String note = "【" + d1 + "】" + "刘庆" + ":" + msg;
bw.newLine();
bw.write(note);
bw.flush();
System.out.println(dp.getAddress().getHostAddress() + ":" + msg);
// 发送消息
msg = br.readLine();
b = msg.getBytes();
dp = new DatagramPacket(b, 0, b.length, InetAddress.getByName(ip), 8081);
ds.send(dp);
// 接收消息
ds.receive(dp);
}
}
}
public class ChatSender {
public static void main(String[] args) throws IOException {
String ip = "192.168.4.147";
// 创建基于UDP协议的网络通道
DatagramSocket ds = new DatagramSocket(8081);
Date d = new Date();
SimpleDateFormat adf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat adf1 = new SimpleDateFormat("yyyyMMdd");
String d1=adf.format(d);
String d2=adf1.format(d);
String f1="D:\\Program Files\\"+d2+".txt";
BufferedWriter bw=new BufferedWriter(new FileWriter(f1,true));
// 获取标准输入流并包装为缓冲流
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
DatagramPacket dp = null;
byte[] b = null;
String msg = "";
while (!(msg = br.readLine()).equals("quit")) {
// 接受消息
b = msg.getBytes();
dp = new DatagramPacket(b, 0, b.length, InetAddress.getByName(ip), 8082);
ds.send(dp);
// 发送消息
ds.receive(dp);
msg = new String(dp.getData(), 0, dp.getLength());
String note = "【" + d1 + "】" + "刘宇" + ":" + msg;
bw.newLine();
bw.write(note);
bw.flush();
System.out.println(dp.getAddress().getHostAddress() + ":" + msg);
}
}
}