2012-03-19 94 views
3

我是一個java網絡新手,我有一個小型項目,我想下載一個LAN網絡,只有五個用戶使用。Java網絡編程的最佳框架?

我想使用Java swing,MySQL作爲數據庫,eclipse作爲IDE。 那麼什麼是最好的框架,使網絡編程更容易,因爲我不想從頭開始。

我讀過關於Netty和Apache Mina的內容,我不知道這對我是否適合我。

回答

3

請參閱netty-vs-mina鏈接。關於「最佳」的問題並不是真正的格式,不應在本論壇中提出。

0

這個問題是5歲半,但它沒有被回答也沒有關閉。這就是爲什麼我寫這個,假設提問者的意思是Server-Client-Model


我會推薦檢出NetCom2。這是一個易於使用的框架,爲未來的改進保持高度模塊化。

這個框架背後的概念可能看起來很奇怪,因爲它構建爲「over-network」Event-Bus。通信主要由對象組成,通過網絡和服務器/客戶端進行響應。

在服務器上,你會寫一個java-PROGRAMM,這可能是這樣的:

public class ServerMain { 

    private ServerStart serverStart; 

    public ServerMain(int port) { 
     serverStart = ServerStart.at(port); 
    } 

    public void start() throws StartFailedException, ClientConnectionFailedException { 
     serverStart.launch(); 
     serverStart.acceptAllNextClients(); 
    } 
} 

而且潛在的客戶是這樣的:

public class ClientMain { 

    private ClientStart clientStart; 

    public ClientMain(String address, int port) { 
     clientStart = ClientStart.at(adress, port); 
    } 

    public void start() throws StartFailedException { 
     clientStart.launch(); 
    } 
} 

這是如何創建並啓動一個服務器和一個客戶端。
您可以告訴客戶端和服務器如何響應某些對象。這應該[clientStart/serverStart] .launch()之前通過聲明來完成:

clientStart.getCommunicationRegistration() 
      .register(MessageObject.class) 
      .addFirst(messageObject -> System.out.println(messageObject)); 

serverStart.getCommunicationRegistration() 
      .register(MessageObject.class) 
      .addFirst((session, messageObject) -> session.send(messageObject)); 

現在,您可以從客戶端向服務器發送的東西,通過陳述:

clientStart.send(new MessageObject()); 

這個例子是基本一個回聲服務器,其解釋爲here
兩者之間的通信更詳細可以找到herehere

如果由產生的輸出不堪重負,你可以通過聲明規範它:

// Choose only one. 
NetComLogging.setLogging(Logging.trace()); 
NetComLogging.setLogging(Logging.debug()); 
NetComLogging.setLogging(Logging.info()); 
NetComLogging.setLogging(Logging.warn()); 
NetComLogging.setLogging(Logging.error()); 
NetComLogging.setLogging(Logging.disabled()); 

哪個更詳細here解釋。


NOTINGS

請注意,這個項目剛開始投放和文檔仍在進行中。

另請注意,此框架仍處於測試階段。我不會推薦它用於生產用途,但我會考慮它的個人使用。