在Java中将信息从一个端口传递到另一个

我正在创建一个简单的Java程序,该程序在启动时会创建两个线程,这些线程中的每个线程都会创建一个侦听不同端口(即端口5500、5100)的服务器,这些服务器各有一个客户端,现在我希望这些服务器能够能够将信息从他们的客户彼此传递。我怎么做。这是我用于服务器的代码

class SocketSeverBrooker extends Thread{
    int portNumber = 5500;
    ServerSocket serverSocket = null;
    int clientID = 10000;


    public void run(){

        try {
            serverSocket = new ServerSocket(portNumber);


            while(true){
                try{
                    // i am accepting acconection from a client
                    Socket clientsocket = serverSocket.accept();
                    new Thread(new BrokerRunnable(clientsocket)).start();
                    System.out.println("a broker has connected with id "+ clientID);
                    clientID++;
                }catch(IOException e){
                    System.out.println("client could not connect");
                }

            }

        }catch (IOException e){
            System.out.println("could not create a connection");
        }

    }
}

class BrokerRunnable implements Runnable{

  protected Socket clientsocket;


    public BrokerRunnable(Socket clientsocket) {
        this.clientsocket = clientsocket;
    }

    public void run() {
        // create two way communication
       // this is used to get input from the connected client clientsocket.getInputStream()

        // new BufferedReader();

        try{

            BufferedReader in = new BufferedReader(new InputStreamReader(clientsocket.getInputStream()));
            PrintWriter out = new PrintWriter(clientsocket.getOutputStream(),true);// write the sever
            String arg1;
            arg1 = in.readLine();
            System.out.println( arg1);
            Scanner scanner = new Scanner(System.in);
            String msgToBrokker = scanner.nextLine();
            out.println(msgToBrokker);


        }catch(IOException e){
            System.out.println("could not read");
        }

    }
}
saab95 回答:在Java中将信息从一个端口传递到另一个

我无法使用评论提出问题。因此在这里写。抱歉。

我从问题中了解的内容,如果不是这种情况,请纠正我。

  1. 我们有多个服务器(S),每个服务器也可能有多个客户端(C)。 S1-> S1C1,S1C2,....,S1Cn S2-> S2C1,S2C2,....,S2Cn ...... Sm-> SmC1,SmC2,....,SmCn

  2. 与其他服务器共享信息的服务器,这些信息可以传递给客户端。

如果以上理解是正确的,则您应该拥有可以由所有服务器共享的公共对象(如列表,地图)。该对象将存储来自所有服务器的信息。您将需要提出一个逻辑,如何处理服务器要读取的信息(例如,S1不应读取自身添加的信息)。

希望这会有所帮助。

本文链接:https://www.f2er.com/3153627.html

大家都在问