clientreceivethread.java

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

JAVA
67
字号
//ClientReceiveThread  类
import javax.swing.*;
import java.io.*;
import java.net.*;

public class ClientReceiveThread extends Thread
{
	private JComboBox combobox;
	private JTextArea textarea;
	Socket socket;
	ObjectOutputStream output;
	ObjectInputStream input;
	JTextField textfield;
	public ClientReceiveThread(Socket socket,ObjectOutputStream output,ObjectInputStream input,JComboBox combobox,JTextArea textarea)
	{
		this.socket = socket;
		this.output = output;
		this.input = input;
		this.combobox = combobox;
		this.textarea =  textarea;
		this.textfield = textfield;
	}
	public void run()
	{
		while(!socket.isClosed())
		{
			try
			{
				String type = (String)input.readObject();
				if(type.equalsIgnoreCase("系统信息"))
				{
					String sysmsg = (String)input.readObject();
					textarea.append("系统信息:" + sysmsg);
				}
				else if(type.equalsIgnoreCase("服务关闭"))
				{
					output.close();
					input.close();
					socket.close();
					textarea.append("服务器已关闭!\n");
					break;
				}
				else if(type.equalsIgnoreCase("聊天信息"))
				{
					String message = (String)input.readObject();
					textarea.append(message);
				}
				else if(type.equalsIgnoreCase("用户列表"))
				{
					String userlist = (String)input.readObject();
					String usernames[] = userlist.split("\n");
					combobox.removeAllItems();
					int i = 0;
					combobox.addItem("所有人");
					while(i < usernames.length)
					{
						combobox.addItem(usernames[i]);
						i++;
					}
					combobox.setSelectedIndex(0);
					textfield.setText("在线用户 " + usernames.length + " 人");
				}
			}
			catch(Exception e){}
		}	
	}
}

⌨️ 快捷键说明

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