0

我有两个客户A,B

我也有服务器 S

A 向服务器 S 发送请求,由于该请求,服务器 S 想要通知客户端 B 客户端 A 提出了请求。

如果 B 向服务器 S 发送请求,也会发生同样的情况,但这次服务器 S 将通知 A

客户端服务器模型可以做到这一点吗?我设法创建了一个简单的程序,其中客户端 A 向服务器 S 发送请求并显示服务器的响应。在这个程序中,服务器 S 监听无休止的连接,这意味着我有这样的事情:

while(true){
   Socket userSocket = serverSocket.accept();
   new Connection(clientSocket);
   //where in the Connection class we manage the connection events
}

但我不明白如何使服务器“S”成为“连接”类中的客户端到未发送请求的客户端。如果我对任何客户端(A 或 B)执行相同的过程,我会得到一个打印一些 IP 地址的异常,但我不确定是哪些,因为我在本地运行所有内容。

提前致谢

4

1 回答 1

0

实际上,您可以按照您说的做,即让 S 通知 B A 已提出请求,反之亦然。从概念上讲,尽管这并不意味着 S 现在是 B 的客户端。S 仍然是服务器,它只是碰巧自己向 B 发送消息,而不是对来自 B 的输入做出反应。

想想 S 代表一个聊天服务器。如果 A 向 S 发送消息并且 S 将其转发给 B,那么 S 现在是 B 的客户端还是仍然是服务器?

于 2012-11-19T22:45:41.013 回答