我猜您正在启动的程序正在尝试侦听固定端口 3333 上的连接,并且当您启动第二个实例时,它会给出“已绑定”的错误。看看是否有办法使用一些参数来更改该端口。但我无法对此发表评论,因为您没有提供任何来源。
但我只是要解释在正常情况下事情是如何运作的
假设消费者正在监听 3333 端口,那么它将成为服务器并接受该端口上的连接。并且多个客户端可以将该端口上的数据发送到服务器
示例客户程序
BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 3333); //3333 is the port on which the server is listening
DataOutputStream outToConsumer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromConsumer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); //Only if consumer sends something in reply
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromConsumer.readLine();
因此,多个生产者将成为客户端,并将数据发送给正在侦听专用端口的消费者。请记住,多个消费者将无法在同一个套接字上监听,您将不得不为不同的消费者使用不同的端口。