【问题标题】:Making a client-server chat - running into issues with connecting client to client进行客户端-服务器聊天 - 在将客户端连接到客户端时遇到问题
【发布时间】:2013-05-21 02:45:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: java


    【解决方案1】:

    就像在 Knock-Knock 示例中一样,每个客户端都连接到服务器,但它们并不直接相互连接。

    有一个解决方案可以做一个转发服务器:给每个客户安排一个id,客户用id来识别他们的谈话伙伴。

    为此,您必须将客户端到服务器的数据格式从纯字符串修改为像 (String,Id) 这样的元组。并且,服务端收到数据后,解析出id,获取对应的客户端socket,然后写入数据。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2020-03-25
        • 2016-04-09
        • 1970-01-01
        • 2016-11-07
        • 1970-01-01
        • 1970-01-01
        • 2016-07-06
        • 1970-01-01
        • 2018-10-04
        相关资源
        最近更新 更多