📄 serverthread.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 + -