2013-03-10 64 views
0

我正在開發基於java的網絡程序,並且我設計了自己的網絡協議。這是我平時做處理傳入的消息:如何更有效地管理java中的網絡協議

socket = ss.accept(); 
in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
String msg = null; 
while(true) 
if((msg=in.readLine())!=null){ 
//handle msg with designed protocol here 
    } 

這是確定要做到這一點時,該協議是很簡單的,但是當它變得複雜,這是壓倒性的把這裏的一切,這也使得我的代碼更難理解。我的問題是,有沒有辦法將協議代碼存儲在另一個地方?先謝謝你!

+1

你的循環是錯誤的反正。如果'readLine()'返回null,則必須關閉並跳出循環。擺脫'while(true)'並將'if'改爲'while'。 – EJP 2013-03-10 22:58:18

回答

3

當然,爲什麼不呢?只需創建另一個課程並製作一個處理方法即可。發送msg它,然後在那裏處理。或進行另一個方法與同一類:

public (static) void handle(String msg) { //Handle message }