java - 创建一个简单的 LAN 信使

标签 java sockets lan instantmessenger

我想用 Java 创建一个简单的 LAN session 聊天风格的信使,但我不知道从哪里开始
它必须具备以下特点:

  • 没有永久用户名:用户每次加入时都必须能够输入用户名,但应该有一个记住我的选项,以防他经常使用它
  • 一个简单的聊天室界面,右侧显示所有在线用户,中间显示聊天消息
  • 私有(private)聊天服务和阻止选项
  • 想要现成的代码,我希望有人向我解释从哪里开始以及如何去做以及我应该知道的事情(例如输入用户名的文本框和东西)
    把它想象成一个信使,让一栋楼里的所有员工都能互相聊天

    最佳答案

    虽然您的问题很模糊,但您似乎已经掌握了基础知识(套接字等)。我建议您先阅读 All About SocketsAll About Datagrams从 Oracle 站点上的 Java 类(class)开始。你可能想消化的第二课的主要内容是关于广播的部分(用于自动检测服务器)。

    以下是我如何在高层次上进行实现:

    • 实现一个在一个可执行文件中包含服务器和客户端功能的应用程序。
    • 应用启动时,如果未检测到其他服务器(自动或由用户指定),则运行该服务器。
    • 始终运行客户端。这意味着,不会使用专用服务器,因为其中一个客户端充当服务器。每个客户端连接到服务器(包括与服务器运行在同一台机器上的客户端)。

    显然有很多方法可以制作这种应用程序。我并不是说我描述的方式是最好的。但是,它可能适合您描述的用例,并且其实现相当简单。

    关于java - 创建一个简单的 LAN 信使,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11079068/

    相关文章:

    django - 如何在 LAN 上设置 Django 服务器

    java - 没有实体主键的 JPA map View

    installation - 是否有设置 Mamp Pro 的权威指南,以便本地网络用户可以查看/编辑站点?

    java - 如何使用表格格式将对象列表打印到文件

    c# - 使用套接字测试服务器

    c++ - EAGAIN 上 recv()

    javascript - 使用 socket.io 创建多个套接字时的 ENOBUFS

    Java getHostAddress() 返回 VirtualBox IPv4 地址

    java - 由 : java. lang.NoSuchMethodError : com. squareup.okhttp.internal.Internal.getHttpUrlChecked 引起

    java - Android - 资源未链接