我正在編寫一個將模擬Java中的Kerberos協議的代碼。我有一個服務器類和一個客戶端類。但有些內容是靜態的,其他內容不是,加上套接字,我混在一起說至少。我認爲協議的細節在這個問題上是任意的。從子線程訪問父實例
我有一個服務器類,它調用ServerThread類:
public class Server{
public void someMethod(){ /* some code */ }
public static void main(String args[]){
ServerSocket serverSocket = new ServerSocket(port);
new ServerThread(serverSocket.accept()).start();
}
}
public class ServerThread extends Thread{
/* constructor (takes serverSocket from Server) */
this.parent.someMethod();
/* That would call someMethod() from the parent class Server instance
* that instantiated this.
*/
}
來實例化ServerThread是給我的服務器類的一部分,我不得不使用它原樣。我自己編寫的someMethod()方法,這是我想從ServerThread中使用的方法。有沒有辦法做到這一點,稱爲this.parent.someMethod()的代碼行?如果可以,是否有辦法從單個控制器類訪問這兩個類,或者靜態內容與非靜態內容是否會破壞該想法?
何時分配了「服務器」實例? – 2012-04-20 15:40:46
對不起,服務器在服務器的主方法中實例化,就在ServerSocket之前。這可以移動。任何此代碼都可以移動。如果需要,主要方法可以在單獨的類中。 – rshaq 2012-04-20 15:43:21