⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientreceivethread.java

📁 用JAVA实现聊天系统,能够实现多线程,多个用户同时聊天.
💻 JAVA
字号:
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;//输入流
	
	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;
	}
	
	public void run()//线程的执行体
	{
		while(!socket.isClosed())//若套接字没有关闭,则一直执行循环体
		{
		
		try{
			String type=(String)input.readObject();//读取服务器发送的聊天信息
			if(type.equalsIgnoreCase("系统信息"))//判断是否为系统信息
			{
				String sysmsg=(String)input.readObject();
				textarea.append("系统信息:"+sysmsg+"\n");
			}
			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);
			}
		}catch(Exception e)
		{;
		}
	}
}
}

⌨️ 快捷键说明

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