2015-11-22 79 views
0
public class SOCKET_SERVER { 

    private JmailHelp JmailHELPER = new JmailHelp(); 
    static int PORT = 444; 

    public static void main(String[] args) throws Exception { 

     SOCKET_SERVER SERVER = new SOCKET_SERVER(); 
     SERVER.JmailHELPER.resetONN(); 
     ServerSocket SRVSOCK = new ServerSocket(PORT); 
     //ArrayList<SocketStatus> OnlineUsers = new ArrayList<SocketStatus>(); 

     Socket SOCK = SRVSOCK.accept(); 
     //new ServerThread(SOCK).start(); 
     SocketStatus a = new SocketStatus(SOCK, false); 
     //OnlineUsers.add(a); 
     //String action = ""; 
     SERVER.ServerActionsHandler(SERVER, SRVSOCK, SOCK, a); 

    }// 
} 

原諒我,如果有什麼我給不夠不要猶豫,問更多,如果你能夠,並且願意盡力幫助我 好, 這是我的socket服務器類ServerActionHandler是一種方法我創建的從客戶端取爲「輸入」(由BufferedReader)的字符串,並調用正確的方法來服務客戶端。應該怎樣一個Socket Thread類做

例如他要登錄:

  1. 他(客戶)發送串「登錄」

  2. 然後服務器把它作爲一個「輸入」在一個字符串稱爲動作ServerActionHandler ,然後識別「登錄」,然後從服務器類別調用Acceptlogin方法

  3. 同時,發送「logi消息」的客戶端正在調用客戶端類的Dologin方法

4.A環路ServerActionsHandle爲r的結束

5.A新的循環開始要求新的行動從客戶

我的項目適用於一臺服務器和一個客戶端 我想讓它爲很多客戶工作

也更多我使用JmailHELPER對象 在幾乎所有的方法SOCKET_SERVER類(例如, login_accept,register_accept ...) 爲了調用它的類的一些方法。

而且SocketStatus保持一個變量,如果某些插座,使用服務器登錄或沒有

從我知道我必須做出ServerThreads類,它擴展的線程來處理一個以上的用戶。 什麼是構造函數和類方法的應該例如,A SocketThread

跑我這http://www.cdk5.net/ipc/programCode/TCPServer.java

感謝。

回答

0

OK, 我知道它的滑稽,但兩小時的休息後,我試圖找到解決方案3分鐘,我解決了這個問題(這就是我認爲現在:P)

至少這是工作在我的電腦有兩個客戶,所以我會檢查它的明天在多臺PC

反正我張貼在回答我的問題,所以你可以看到,如果你有一個共同的問題

public static void main(String[] args) throws Exception { 
    SOCKET_SERVER SERVER = new SOCKET_SERVER(); 
    SERVER.JmailHELPER.resetONN(); 
    ServerSocket SRVSOCK = new ServerSocket(PORT); 

    while (true) { 
     Socket SOCK = SRVSOCK.accept(); 
     SocketStatus a = new SocketStatus(SOCK, false); 
     new Thread() { 
      public void run() { 
       try { 
        SERVER.ServerActionsHandler(SERVER, SRVSOCK, SOCK, a); 
       } catch (Exception ex) { 
        Logger.getLogger(SOCKET_SERVER.class.getName()).log(Level.SEVERE, null, ex); 
       }; 
      } 
     }.start(); 
    } 
}