QQ_MultiTalkServer
package test_teacher;
import java.net.*;
import java.io.*;
public class MultiTalkServer
{
public static void main(String[] args) throws IOException
{
ServerSocket serverSocket = null;
boolean listening = true;
int clientNumber = 0;
try {
serverSocket = new ServerSocket(4444);
}
catch (IOException e){
System.err.println("Could not listen on port: 4444.");
System.exit(-1);
}
while (listening)
{
Socket socket;
socket = serverSocket.accept(); //程序将在此等候客户端的连接
clientNumber++;
new MultiTalkServerThread(socket, clientNumber).start();
}
serverSocket.close();
}
}
class MultiTalkServerThread extends Thread
{
private Socket socket = null;
private int clientNumber;
public MultiTalkServerThread(Socket socket, int clientNumber)
{
super("MultiTalkServerThread");
this.socket = socket;
this.clientNumber = clientNumber;
System.out.println("Accept Client" + clientNumber);
}
public void run()
{
try {
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); //auto flush
BufferedReader in = new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
BufferedReader sin = new BufferedReader( new InputStreamReader( System.in ) );
String sinputLine, inputLine;
boolean sinbye = false;
boolean inbye = false;
inputLine = in.readLine();
System.out.println( "from Client" + clientNumber + ": " + inputLine );
while( true )
{
if(inputLine.equals("Bye."))
{
inbye = true;
sinbye = true;
sinputLine = "Bye.";
out.println(sinputLine);
out.flush();
System.out.println("Server: " + "Reply to client " + clientNumber +" : " + sinputLine);
}
else
{
sinputLine = "Reply to client " + clientNumber +" : " + inputLine;
out.println(sinputLine);
out.flush();
System.out.println("Server: " + sinputLine);
}
if( sinbye == true && inbye == true )
break;
if( inbye == false )
{
inputLine = in.readLine();
System.out.println( "form Client " + clientNumber + ": " + inputLine );
}
}
out.close();
in.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY