?? guiserver.java
字號:
package magic.net;
import java.io.*;
import java.awt.*;
import java.applet.*;
import java.net.*;
// 一個簡單的啟動TCP連接的圖形化服務器
public abstract class GUIServer
extends Applet
implements Runnable
{
// 服務器連接的默認端口
public static final int DEFAULT_PORT = 1234;
// 服務端口
protected int port;
// 監聽服務請求的ServerSocket
protected ServerSocket listener;
// 服務器的執行線程
protected Thread exec;
// 用來打印服務器消息的 TextArea
protected TextArea textArea;
public void log(String msg)
{
if (textArea != null) {
textArea.append("Server: " + msg + "\n");
}
}
// 創建監聽連接的ServerSocket
public void init()
{
textArea = new TextArea();
textArea.setEditable(false);
add(textArea);
port = Integer.parseInt(getParameter("Port"));
if (port == 0) {
port = DEFAULT_PORT;
}
try {
listener = new ServerSocket(port);
}
catch (IOException e) {
log("I/O exception creating server socket : " + e);
}
log("listening on port " + port);
}
public void start()
{
exec = new Thread(this);
exec.start();
}
public void stop()
{
exec = null;
}
protected abstract void createService(Socket s);
public void run()
{
try {
Thread thread = Thread.currentThread();
while (exec == thread) {
Socket clientSocket = listener.accept();
log("connected to " + clientSocket.getInetAddress() +
" : " + clientSocket.getPort());
createService(clientSocket);
try {
Thread.sleep(25);
}
catch (InterruptedException e) {}
}
}
catch (IOException e) {
log("I/O exception raised while listening for connections : " + e);
}
}
} // GUIServer
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -