package lts; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.swing.JTextArea; public class ServerThread extends Thread { //属性 ServerSocket server; JTextArea showmess; JTextArea showuser; String sendMess; List<Socket> clients=new ArrayList<Socket>(); //get和set方法 **可以不用get和set方法** public List<Socket> getClients() { return clients; } public void setClients(List<Socket> clients) { this.clients = clients; } //构造方法 public ServerThread(ServerSocket server,JTextArea showmess,JTextArea showuser){ this.server=server; this.showmess=showmess; this.showuser=showuser; } //run方法 @Override public void run() { while (true) //需要不断执行,等待客户端的连接 { try { //客户端连接服务端向服务端发送了一条语句,语句格式为name+@,服务端读取消息内容 Socket socket = server.accept();//等待客户端连接 InputStream is = socket.getInputStream();//数据来了 输入流读数据 客户端发来的 -socket转字节流 BufferedReader br = new BufferedReader(new InputStreamReader(is));//字节流转字符缓冲流 String s = br.readLine();//定义s接收数据 sendMess =s+"连接成功";// 重新组装消息,准备数据 //============================================================ clients.add(socket);//将所有的连接保存到list里,以便完成群发消息 **只要客户端上线就加入list集合 //断开时要移除 //====================================================== Date d=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm"); String t=sdf.format(d); //======================================================== showmess.append(t+"\n"+" "+sendMess+"\n");//将用户已经上线的消息显示到客户端文本区域中 showuser.append(s+"\n");//显示到在线用户列表中 // ClientThread client=new ClientThread(clients,sendMess,br,this.showmess);//一个客户端创建一个线程来完成消息的群发 client.start(); } catch (IOException e) { System.out.println("错误"); } } } //结束 }
最近下载更多
yuchunxing LV1
2023年9月2日
青柠编程 LV13
2023年4月18日
referrer LV1
2022年12月25日
qqyx777 LV1
2022年6月27日
微信网友_6003487859068928 LV5
2022年6月15日
123456qiqiqi LV1
2022年5月27日
tdcq123 LV14
2022年3月13日
bbbookworm LV1
2022年2月19日
weny_QAQ LV2
2021年12月22日
Sunknown LV1
2021年11月30日
最近浏览更多
3263394665 LV9
8月31日
周鸣郝 LV2
5月26日
krispeng LV13
4月16日
dapeng0011 LV15
2月25日
陈小灏 LV15
2023年12月27日
微信网友_6762641760833536
2023年12月4日
暂无贡献等级
yuchunxing LV1
2023年9月2日
fuyouou LV5
2023年6月29日
CL200228 LV4
2023年5月5日
gzryue LV6
2023年3月8日