myclientreader.java
来自「QQ聊天」· Java 代码 · 共 77 行
JAVA
77 行
package com.sato.client.chat;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Date;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import com.sato.pub.PackType;
import com.sato.pub.QQpack;
import com.sato.pub.User;
public class MyClientReader extends Thread{
private QQpack pack;
private Socket socket;
private ChatFace chatface;
private ObjectInputStream ois;
private ObjectOutputStream oos;
public MyClientReader(Socket socket,ObjectInputStream ois,ObjectOutputStream oos,ChatFace chatface){
this.socket=socket;
this.chatface=chatface;
this.ois=ois;
this.oos=oos;
}
public void run(){
while(true){
try {
System.out.println("aaaaa;:"+Thread.currentThread());
pack=(QQpack) ois.readObject();
FileWriter fw=new FileWriter("./chatRecord/"+chatface.getId()+".txt",true);
BufferedWriter bw=new BufferedWriter(fw);
if(pack.getType().equals(PackType.online_list)){
chatface.getOnlineList().setModel((DefaultListModel)pack.getContent());
}
if(pack.getType().equals(PackType.group_chat)){
String str=pack.getFrom().getSname()+" "+pack.getFrom().getSid()+new Date()+"\n"+pack.getContent().toString()+"\n";
chatface.getShowArea().append(str);
bw.write(str);
bw.flush();
}
if(pack.getType().equals(PackType.Private_Chat)){
String str=pack.getFrom().getSname()+" "+pack.getFrom().getSid()+new Date()+"\n"+pack.getContent().toString()+"\n";
chatface.getShowArea().append(str);
bw.write(str);
bw.flush();
}
if(pack.getType().equals(PackType.bulletin)){
chatface.getBoardArea().append("服务端:"+"\n"+pack.getContent().toString()+"\n");
}
if(pack.getType().equals(PackType.force_offline)){
chatface.getShowArea().append("用户被强制下线"+new Date()+"\n");
}
if(pack.getType().equals(PackType.server_stop)){
chatface.getShowArea().append("服务器停止"+new Date()+"\n");
}
if(pack.getType().equals(PackType.chang_succeed)){
JOptionPane.showConfirmDialog(null, "修改成功", "提示",JOptionPane.DEFAULT_OPTION);
}
if(pack.getType().equals(PackType.chang_fail)){
JOptionPane.showConfirmDialog(null, "旧密码不正确", "提示",JOptionPane.DEFAULT_OPTION);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
break;
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?