📄 connectlisten.java
字号:
package cr;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
class ConnectListen extends Thread{
Socket socket;
BufferedReader reader;
PrintWriter writer;
ServerMain smaTemp;
boolean booKick;
ConnectListen(Socket sock,ServerMain smaTemp){
this.socket=sock;
this.smaTemp=smaTemp;
booKick=false;
}
public void run(){
try {
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer=new PrintWriter(socket.getOutputStream(),true);
String msg;
while((msg=reader.readLine())!=null){
String strObject=msg.substring(0, msg.indexOf("\1"));
String strContent=msg.substring(msg.indexOf("\1")+1);
String strName=smaTemp.ltaOnline.isName(smaTemp.cpoOnline.indesOf(socket)+1);
if (strObject.equals("所有人")){
smaTemp.cpoOnline.sendAll(strName+"对所有人说:"+strContent);
smaTemp.jtaChats.append(strName+"对所有人说:"+strContent+"\n");
}
else {
if (smaTemp.ltaOnline.isBeing(strObject)){
int intObject=smaTemp.ltaOnline.getIndex(strObject)-1;
smaTemp.cpoOnline.sendTo(intObject,strName+"对你说:"+strContent);
writer.println("你对"+strObject+"说:"+strContent);
smaTemp.jtaChats.append(strName+"对"+strObject+"说:"+strContent+"\n");
}
}
}
}
catch (IOException ex) {
}
finally{
if(booKick==false)
try {
String strName=smaTemp.ltaOnline.isName(smaTemp.cpoOnline.indesOf(socket)+1); //获取本进程对象名字
smaTemp.cpoOnline.remove(socket); //在联接池删除自身
smaTemp.ltaOnline.delElement(strName); //在在线列表中删除自己
smaTemp.ltaOnline.refurbish();
smaTemp.jlaOnlineSum.setText(""+smaTemp.ltaOnline.getSum()); //更新在线人数
smaTemp.jtaChats.append("系统广播:"+strName+"走了!"+"\n"); //在服务器端聊天窗口进行提示
smaTemp.cpoOnline.sendAll("系统广播:"+strName+"走了!"); //在全聊天室进行广播
smaTemp.cpoOnline.sendAll("DEL");
smaTemp.cpoOnline.sendAll(strName); //通知所有客户端的在在线列表中删掉这个名字
if (reader != null) {reader.close(); }
if (writer!=null){writer.close();}
if (socket!=null){socket.close();}
reader=null;writer=null;socket=null;smaTemp=null;
}
catch (IOException ex1) {
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -