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