【问题标题】:Open two ports connection with one server on java在java上打开与一台服务器的两个端口连接
【发布时间】:2018-04-02 17:06:27
【问题描述】:

我想启动一个服务器,它同时监听两个不同的端口,并对传入的连接进行不同的处理(我根据端口启动不同的从站)。我做了这样的事情:

public class ServeurMaitre {
public static ServerSocket serverSocket = null;
int poolSize = 15;
private ExecutorService pool = null;
ServeurMaitre(int port, int size){
    try {
        serverSocket = new ServerSocket(port, size);
        pool = Executors.newFixedThreadPool(poolSize);
        System.out.println("Serveur en marche. En attente des clients");

    } catch (IOException ex) {
        Logger.getLogger(ServeurMaitre.class.getName()).log(Level.SEVERE, null, ex);
    }
}

void ConnexionServeur() throws IOException {
    while(true) {               
        Socket cnx = serverSocket.accept();
        if (cnx.getLocalPort()==3333) {
            pool.execute(new EsclaveXML(cnx, this));
        }
        if(cnx.getLocalPort()==8000) {
            pool.execute(new EsclaveHTTP(cnx, this));
        }           
    }
}

public class Main{
public static void main(String[] args) throws IOException {
    ServeurMaitre serveur = new ServeurMaitre(8000, 1);
    ServeurMaitre serveur1 = new ServeurMaitre(3333, 1);
    serveur.Initialisation();
    serveur.ConnexionServeur();
    serveur1.ConnexionServeur();

}}

问题:到达端口 3333 的连接得到很好的处理,但到达 8000 的连接却没有。 请问有什么帮助吗?谢谢。

【问题讨论】:

    标签: java sockets port


    【解决方案1】:

    我认为,问题的原因是“静态 serverSocket”变量。

    您可以更改此行
    public 静态 ServerSocket serverSocket = null;

    public ServerSocket serverSocket = null;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 2021-05-13
      • 1970-01-01
      • 2015-09-08
      • 2012-09-22
      • 2018-12-14
      • 2012-10-23
      相关资源
      最近更新 更多