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日
最近浏览更多
13133117021 LV5
2024年12月24日
3263394665 LV9
2024年8月31日
周鸣郝 LV2
2024年5月26日
krispeng LV15
2024年4月16日
dapeng0011 LV15
2024年2月25日
陈小灏 LV18
2023年12月27日
微信网友_6762641760833536
2023年12月4日
暂无贡献等级
yuchunxing LV1
2023年9月2日
fuyouou LV5
2023年6月29日
CL200228 LV4
2023年5月5日

