serverlistenthread.java

来自「多人聊天室源代码 一个服务器 多人进入」· Java 代码 · 共 50 行

JAVA
50
字号
//ServerListenThread 类
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.net.*;

public class ServerListenThread extends Thread
{
	ServerSocket server;
	JComboBox combobox;
	JTextArea textarea;
	JTextField textfield;
	UserInfoList userInfoList;
	Node client;
	ServerReceiveThread recvThread;
	public boolean isStop;
	public ServerListenThread(ServerSocket server,JComboBox combobox,JTextArea textarea,JTextField textfield,UserInfoList userInfoList)
	{
		this.server = server;
		this.combobox = combobox;
		this.textarea = textarea;
		this.textfield = textfield;
		this.userInfoList = userInfoList;
		isStop = false;
	}
	public void run()
	{
		while(!isStop && !server.isClosed())
		{
			try
			{
				client = new Node();
				client.socket = server.accept();
				client.output = new ObjectOutputStream(client.socket.getOutputStream());
				client.output.flush();
				client.input = new ObjectInputStream(client.socket.getInputStream());
				client.username = (String)client.input.readObject();
				combobox.addItem(client.username);
				userInfoList.add(client);
				textarea.append("用户" + client.username + "上线" + "\n");
				textfield.setText("在线用户" + userInfoList.getCount() + "人\n");
				recvThread = new ServerReceiveThread(textarea,textfield,combobox,client,userInfoList);
				recvThread.start();
			}
			catch(Exception e){}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?