【问题标题】:Java Sever Network - Connect specific clients to each other over the same portJava 服务器网络 - 通过同一端口将特定客户端相互连接
【发布时间】:2015-08-10 01:21:42
【问题描述】:

我有一个聊天应用程序,它连接到侦听端口 4444 的服务器。

Client1、Client2 和 Client3 将通过 4444 端口连接到服务器,并希望相互交谈。

Client4、Client5 和 Client6 也将在端口 4444 上连接到服务器,并且也希望彼此通信。

我不知道如何区分客户端以及如何让正确的客户端相互通信(一组中的客户端 1、2 和 3。另一组中的客户端 4、5 和 6)。

不确定我是否走在正确的轨道上,但我现在在想,假设 Client1 首先连接并传递一个名为“Alpha”的标题。然后 Client2 和 Client3 将连接并搜索单词“Alpha” “?然后我将它们放入一个数组中?如果这是我假设的轨道,我将如何在代码中实现它?

【问题讨论】:

    标签: java networking client server


    【解决方案1】:

    有很多方法可以达到您的目标,但最合适的算法的问题是您的详细意图。你要吗

    • 每个客户通过设置字符串手动选择他的组?
    • 每个客户都可以从现有组中选择自己的组?
    • 每个客户端都从服务器的预定义组中选择他的组?

    在您找到让每个客户端选择他的组的方法后,服务器会将来自该客户端的每条消息发送给组内的所有其他客户端(可能也发送给发送者以表明消息已成功发送)。

    【讨论】:

    • 对编码还是很陌生,所以我不太确定.. 我想基本上 Client1 将创建一个名为 Alpha 的组。然后 Client2 和 Client3 将加入该组 Alpha,他们都可以通过它一起交谈。网上有我要找的例子吗?或者我应该搜索什么关键字?谢谢!
    • 没问题,你是编码新手。但是你在寻找什么样的例子?该算法包括套接字的处理、组的创建/设置/选择以及将客户端消息转发到组是一个大算法 - 几乎是一个聊天程序。如果您能够缩小问题的大小,那么回答起来会容易得多 - 否则您要求的是一个完整的聊天程序。 ;-)
    • 我想现在处理和区分套接字。我关注了许多简单的聊天应用程序......但它们似乎都没有处理创建一个以上的组,以便可以同时进行 2 个或多个不同的聊天(当然,它们被认为很简单,所以他们只坚持一个聊天团体)。谢谢!
    • 我会尝试使用这些简单的聊天应用程序。在那里,您可能会找到客户端的列表/映射/连接/套接字集和一个将传入消息发送到所有客户端的位置。然后我会为这些连接/套接字创建一个容器,让我们调用类 GroupConnection - 这是一个简单的 Java 类,带有指向连接/套接字的指针和组的字符串。然后,在算法中,我会找到发件人的 GroupConnection 以及他/她所在的组。之后,我会询问每个 GroupConnection 组是什么,只有当它匹配时,你才会将其发送给这个组。
    猜你喜欢
    • 2011-12-26
    • 2015-11-02
    • 1970-01-01
    • 2019-04-27
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多