创建一个简单的LAN信使

Fas*_*tib 3 java sockets lan instantmessenger

我想用Java创建一个简单的局域网会议聊天风格信使,但我不知道从哪里开始.
它必须具有以下功能:

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

    Kal*_*lja 6

    虽然你的问题很模糊,但你似乎已经掌握了基础知识(插座和所有这些).我建议您先阅读Oracle网站上的All About SocketsAll About Datagrams Java课程,然后开始使用.您可能想要消化的第二课的主要内容是关于广播的部分(出于自动服务器检测的目的).

    以下是我如何在高层次上实施:

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

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


    Qwe*_*rky 5

    听起来您需要为每个用户提供一个服务器应用程序和一个客户端应用程序。他们将通过套接字进行通信。服务器会打开一个ServerSocket,客户端会创建Sockets 并在他们想要聊天时连接到服务器。

    服务器需要能够接受来自客户端的连接。服务器会保存所有的全局细节,比如有哪些聊天室,每个聊天室都有谁等。基本的行为是,当一个聊天室里有几个人(客户端)时,一个客户端会说些什么,这被发送到服务器通过套接字。服务器具有聊天室中所有客户端(套接字)的列表,并将消息发送给每个客户端。

    最后,您需要注意服务器必须是多线程的,并且可能需要为每个连接的客户端套接字创建一个新线程。