LoggingUDPDiscardServer server = new LoggingUDPDiscardServer();
server.start();
執行後所引發的執行步驟.是什麼
我就是這一行程式看不懂.是傳資料回去server.?
2006-03-24 17:38:29 · 1 個解答 · 發問者 Genius 1 in 電腦與網際網路 ➔ 程式設計
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⤋