按照此图表,我设法将客户端与其服务器连接,并完美地进行通信:
问题是:是否可以先让服务器先发出请求? 如果是,我如何配置客户端以等待服务器的呼叫?
我这样做了(客户方):
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();
但客户端没有收到服务器的消息,虽然我没有在客户端或服务器的日志中看到任何错误。
如何解决此问题,并从服务器向所有连接的客户端“广播”消息?谢谢! :)
答案 0 :(得分:2)
是的,它可能。您应该指示必须等待服务器消息的客户端(您可以通过socket上的read命令来执行此操作,因为它的阻塞命令)。 在服务器上,您唯一需要做的就是在客户端连接接受后使用wite数据。