进行客户端 - 服务器聊天 - 遇到将客户端连接到客户端的问题

时间:2013-05-21 02:45:12

标签: java

我正在尝试学习如何制作多客户端聊天程序。我正在关注自定义网络的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

无论如何,我让服务器客户端工作在服务器告诉敲敲笑话,客户端读取和打印,然后用户回复等等。我将如何开始编辑它以使客户端直接与其他客户端通信?

对不起,我根本没有网络背景。如果有人能指导我更适合我的目标的信息来源我会很感激。

2 个答案:

答案 0 :(得分:0)

在Knock-Knock示例中,每个客户端都连接到服务器,但它们不是相互直接连接的。

有一个制作转发服务器的解决方案:为每个客户端安排一个id,客户端使用id来识别他们的谈话伙伴。

为此,您必须将客户端到服务器数据格式从普通字符串修改为元组(String,Id)。并且,当服务器接收数据时,它会解析id,获取相应的客户端套接字,然后写入数据。

答案 1 :(得分:0)

由于您需要某种“进程间通信”基础架构以允许客户端与客户端进行通信(可能通过服务器编组的套接字?),所需的复杂性水平上升了一个档次。