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

📄 clientreceive.java

📁 网络通信系统
💻 JAVA
字号:
import javax.swing.*;
import java.io.*;
import java.net.*;

public class ClientReceive extends Thread{//客户端聊天消息的接收
  Socket socket;
  JTextArea usershow;//用户列表窗口
  JTextArea messageshow;//消息窗口
  JComboBox userlist;//选择发送消息的接收者
  ObjectOutputStream output;
  ObjectInputStream input;
  JButton set;//设置按钮
  JButton connect;//连接按钮
  JButton cut;//断开按钮
	
  public ClientReceive(Socket socket,JTextArea usershow,JTextArea messageshow,
		               JComboBox userlist,ObjectOutputStream output,ObjectInputStream input,
		               JButton set,JButton connect,JButton cut){
	this.socket = socket;
	this.usershow = usershow;
	this.messageshow = messageshow;
	this.userlist = userlist;
	this.output = output;
	this.input = input;
	this.set = set;
	this.connect = connect;
	this.cut = cut;
  }
  
  public void run(){//启动线程
	while(!socket.isClosed()){
	  try{
		String type = (String)input.readObject();
		if(type.equals("服务关闭")){//消息类型为服务关闭
		  output.close();//关闭输出流
		  input.close();//关闭输入流
		  socket.close();//关闭接口
		  messageshow.append("服务器已经关闭!\n");
		  set.setEnabled(true);
		  connect.setEnabled(true);
		  cut.setEnabled(false);
		  break;
		}
		else if(type.equals("聊天消息")){//消息类型为聊天消息
		  String msg = (String)input.readObject();
		  messageshow.append(msg);//在消息窗口中显示消息
		}
		else if(type.equals("用户列表")){//消息类型为用户下线
		  String user = (String)input.readObject();//接收用户列表
		  String usernames[] = user.split("\n");
		  userlist.removeAllItems();
		  userlist.addItem("所有人");
		  usershow.setText("");
		  int i = 0;
		  while(i < usernames.length){
			userlist.addItem(usernames[i]);
			usershow.append(usernames[i]+'\n');
			i++;
		  }
		  //userlist.setSelectedIndex(0);
		}
	  }
	  catch(Exception e){
		//System.out.println(e);  
	  }
	}
  }
                            
}

⌨️ 快捷键说明

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