📄 handleaclient.java
字号:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Timer;
public class HandleAClient extends Thread {
private ObjectInputStream ois;
private ObjectOutputStream oos;
private ClientList cl;
private AClient ac;
public HandleAClient(AClient a, ClientList c){
super();
ac = a;
ois = a.getObjectInputStream();
oos = a.getObjectOutputStream();
cl = c;
}
public void run(){
try {
while(true){
Msg msg = (Msg)ois.readObject();
if(msg.gettype() == Msg.HANDSHAKE) {
ac.setname(msg.getfrom());
System.out.println(msg.getfrom()+" is conected.");
oos.writeObject(Msg.OKMSG("server"));
oos.flush();
cl.addclient(ac);
ac.ok = true;
}
else if(ac.ok){
if(msg.type == Msg.MSG){
sendmsg(msg);
}
else if(msg.type == Msg.LIST){
oos.writeObject(Msg.LISTMSG("server", cl.toString()));
}
else if(msg.type == Msg.EXIT){
break;
}
else{
}
}
else{
}
}
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
finally{
cl.remove(ac.name);
try {
ac.close();
} catch (IOException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
System.out.println(ac.name +" left.");
}
}
public void sendmsg(Msg m) throws IOException{
AClient rac = cl.findaclient(m.getto());
if(rac != null){
ObjectOutputStream temp = rac.getObjectOutputStream();
temp.writeObject(m);
temp.flush();
}
else{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -