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

📄 serverthread.java

📁 多人聊天
💻 JAVA
字号:
import java.net.*;
import java.io.*;
import java.util.*;
 
// 伺服執行緒
public class ServerThread extends Thread {
    private ServerSocket _serverSkt;
    private BroadCastThread _broadCastThread; // 負責廣播
 
    public ServerThread(int port) {
        setDaemon(true);
        // 啟動廣播執行緒
        _broadCastThread = new BroadCastThread();
        _broadCastThread.start();
 
        try {
            _serverSkt = new ServerSocket(port);
        }
        catch(IOException e) {
            System.out.println(e.toString());
        }
    }
 
    public void addSysopMessage(String message) {
        _broadCastThread.addMessage(message);
    }
 
    public void run() {
        Socket clientSkt = null; // 客戶端Socket
        ClientThread client = null; // 客戶端連線
 
        try {
            while(true) {
                System.out.println("傾聽客戶端......");
                clientSkt = _serverSkt.accept();
                System.out.println(clientSkt.getInetAddress() + "連線......");
 
                // 啟動一個客戶端執行緒,第二個參數指定廣播執行緒物件
                client = new ClientThread(clientSkt, _broadCastThread);
                client.start();
                
                // 將客戶端加入廣播執行緒中管理
                _broadCastThread.addClientThread(client);
            }
        }
        catch(IOException e) {
             System.out.println(e.toString());
        }
    }
 
    public void finallize() {
        try {
            _serverSkt.close();
        }
        catch(IOException e) {
            System.out.println(e.toString());
        }
    }
}

⌨️ 快捷键说明

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