English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

LoggingUDPDiscardServer server = new LoggingUDPDiscardServer();
server.start();
執行後所引發的執行步驟.是什麼
我就是這一行程式看不懂.是傳資料回去server.?

2006-03-24 17:38:29 · 1 個解答 · 發問者 Genius 1 in 電腦與網際網路 程式設計

1 個解答

LoggingUDPDiscardServer server = new LoggingUDPDiscardServer();
這行是建立一個類別為 LoggingUDPDiscardServer 的實體,命名為 server。

server.start();
呼叫 server 的方法 start()。

我大膽猜測一下,你這個範例是在 Java Network Programing 的第 13 章。如果沒錯的話 LoggingUDPDiscardServer 的部份程式應該是

public class LoggingUDPDiscardServer extends UDPServer {
public final static int DEFAULT_PORT = 9999;

public LoggingUDPDiscardServer() throws SocketException {
super(DEFAULT_PORT);
}
// 其餘程式碼
}

而父類別 UDPServer 的相關程式碼為
public abstract class UDPServer extends Thread {
private int bufferSize; // in bytes
protected DatagramSocket ds;

public UDPServer(int port, int bufferSize)
throws SocketException {
this.bufferSize = bufferSize;
this.ds = new DatagramSocket(port);
}

public UDPServer(int port) throws SocketException {
this(port, 8192);
}

public void run() {
// run() 的程式碼
}

//其餘程式碼
}

因此建構子會將 9999 傳給父類別 UDPServer 的建構子而建立一個 port 為 9999 的 UDPServer 實體。由於 UDPServer 繼承 Thread,因此 server.start() 會去呼叫 UDPServer 中的 run(),這個部分是 Thread computing,我想你不清楚的應該是這裡吧。請去參考 Java Thread 的用法,因為要做 Network 的程式設計,Thread 是不可或缺的。

2006-03-28 08:57:54 · answer #1 · answered by ? 7 · 0 0

fedest.com, questions and answers