?? serverlisten.java
字號:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.net.*;
/*
* 服務端的偵聽類
*/
public class ServerListen extends Thread {//線程 是程序中的執行線程。Java 虛擬機允許應用程序并發地運行多個執行線程。
ServerSocket server;//此類實現服務器套接字。服務器套接字等待請求通過網絡傳入。它基于該請求執行某些操作,然后可能向請求者返回結果。
JComboBox combobox;//將按鈕或可編輯字段與下拉列表組合的組件。用戶可以從下拉列表中選擇值,下拉列表在用戶請求時顯示。如果使組合框處于可編輯狀態,則組合框將包括用戶可在其中鍵入值的可編輯字段。
JTextArea textarea;
JTextField textfield;
UserLinkList userLinkList;//用戶鏈表
Node client;
ServerReceive recvThread;
public boolean isStop;
/*
* 聊天服務端的用戶上線于下線偵聽類
*/
public ServerListen(ServerSocket server,JComboBox combobox,
JTextArea textarea,JTextField textfield,UserLinkList userLinkList){
this.server = server;
this.combobox = combobox;
this.textarea = textarea;
this.textfield = textfield;
this.userLinkList = userLinkList;
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);
userLinkList.addUser(client);
textarea.append("用戶 " + client.username + " 上線" + "\n");
textfield.setText("在線用戶" + userLinkList.getCount() + "人\n");
recvThread = new ServerReceive(textarea,textfield,
combobox,client,userLinkList);
recvThread.start();
}
catch(Exception e){
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -