0

我正在尝试学习如何制作多客户端聊天程序。我正在关注关于自定义网络的 Oracle 教程,但这并不是我真正想要的。到目前为止,我没有自己的代码可以分享,所有这些都是从 Oracle 教程中复制的,我认为将其粘贴到此处会侵犯版权(??)。

链接:http ://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html+

客户端代码链接:http ://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/networking/sockets/examples/KnockKnockClient.java

无论如何,我让服务器-客户端在服务器告诉敲门笑话的地方工作,客户端读取并打印,然后用户回复等等。我将如何开始编辑它以让客户直接与其他客户交谈?

对不起,我根本没有网络背景。如果有人可以指导我找到更适合我目标的信息来源,我将不胜感激。

4

2 回答 2

0

as in the Knock-Knock example, each client connects to the server, but they not mutually directly connected.

There is a solution to make a forwarding sever :Arrange each client an id, and clients use id to identify their talking partners.

To do this, you have to modify the client to server data format from a plain string to a tuple like (String,Id). And, when the server receive the data, it parses out the id, get the corresponding client socket and then write the data.

于 2013-05-21T03:34:16.263 回答
0

所需的复杂程度上升了一个档次,因为您需要某种“进程间通信”基础设施来允许客户端到客户端的通信(可能通过服务器编组的套接字?)

于 2013-05-21T05:42:08.073 回答