2015-11-22 48 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(); 
    } 
}