Java:TCP套接字,服务器可以先发出第一个请求吗?

Java:TCP套接字,服务器可以先发出第一个请求吗?,java,sockets,server,request,client,Java,Sockets,Server,Request,Client,按照此图,我成功地将客户机与其服务器连接起来,并实现了完美的通信: 问题是:是否可以让服务器先发出请求? 如果是,如何配置客户端以保持等待服务器呼叫 我这样做了(客户方): 但是客户端没有收到服务器的消息,尽管我在客户端或服务器的日志中没有看到任何错误 如何解决这个问题,并将消息从服务器“广播”到所有连接的客户端?谢谢!:) 是的,这是可能的。您应该指出必须等待服务器消息的客户端(您可以通过套接字上的read命令来执行,因为它是阻塞命令)。 在服务器上,您只需在客户端连接后接受数据。是的,它是

按照此图,我成功地将客户机与其服务器连接起来,并实现了完美的通信:

问题是:是否可以让服务器先发出请求? 如果是,如何配置客户端以保持等待服务器呼叫

我这样做了(客户方):

但是客户端没有收到服务器的消息,尽管我在客户端或服务器的日志中没有看到任何错误


如何解决这个问题,并将消息从服务器“广播”到所有连接的客户端?谢谢!:)

是的,这是可能的。您应该指出必须等待服务器消息的客户端(您可以通过套接字上的read命令来执行,因为它是阻塞命令)。
在服务器上,您只需在客户端连接后接受数据。

是的,它是可能的。您应该指出必须等待服务器消息的客户端(您可以通过套接字上的read命令来执行,因为它是阻塞命令)。
在服务器上,您只需在客户端连接后接受数据。

请求?您想要数据传输还是连接?如果传输——只需在客户端执行
socket.read(…)
——就不需要在客户端执行
ServerSocket
。如果您希望服务器启动连接,那么它不再是服务器,而是客户端:)谢谢@VictorSorokin,我没有找到套接字的read()方法。请问,确切的名字是什么?
socket.getInputStream().read(…)
Thank you@VictorSorokin:),你就是那个人。请求?您想要数据传输还是连接?如果传输——只需在客户端执行
socket.read(…)
——就不需要在客户端执行
ServerSocket
。如果您希望服务器启动连接,那么它不再是服务器,而是客户端:)谢谢@VictorSorokin,我没有找到套接字的read()方法。请问,确切的名字是什么?
socket.getInputStream().read(…)
Thank you@VictorSorokin:),你就是那个人。
Socket serverSocket = new Socket(Network.serverInetAddress, Network.SERVICE_PORT);

while (!Thread.currentThread().isInterrupted()) {
    ObjectInputStream objectInputStream = new ObjectInputStream(new BufferedInputStream(serverSocket.getInputStream()));
    MessageContent messageContent = (MessageContent) objectInputStream.readObject();

    Network.processMessage(messageContent);
}

serverSocket.close();