我想用 Java 创建一个简单的 LAN 会议聊天风格的信使,但我不知道从哪里开始。
它必须具有以下特点:
想象一下作为一个信使,允许一栋楼里的所有员工互相聊天
我想用 Java 创建一个简单的 LAN 会议聊天风格的信使,但我不知道从哪里开始。
它必须具有以下特点:
尽管您的问题很模糊,但您似乎已经具备了基础知识(套接字和所有这些)。我建议您从阅读 Oracle 网站上的All About Sockets和All About Datagrams Java 课程开始。您可能想要消化的第二课的主要内容是关于广播的部分(用于自动服务器检测)。
以下是我将如何在高层次上进行实施:
显然有很多方法可以制作这种应用程序。我并不是说我描述的方式是最好的。但是,它可能适合您描述的用例,并且它的实现相当简单。
听起来您需要为每个用户提供一个服务器应用程序和一个客户端应用程序。他们将通过套接字进行通信。服务器会打开 a ServerSocket
,客户端会创建Socket
s 并在他们想要聊天时连接到服务器。
服务器需要能够接受来自客户端的连接。服务器将保存所有全局细节,例如存在哪些聊天室,每个聊天室都有谁等。基本行为是,当聊天室中有几个人(客户端)时,一个客户端会说些什么,这被发送到服务器通过套接字。服务器拥有聊天室中所有客户端(套接字)的列表,并将消息发送给每个客户端。
最后,您需要注意服务器必须是多线程的,并且可能需要为每个连接的客户端套接字创建一个新线程。
由于您不知道是否会有用于该目的的服务器,因此除了先前的响应之外,您可能会感兴趣的下一个链接:
http://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html
可以实现阻止选项,保存 IP 列表并忽略来自它们的消息。
您还必须查看 swing 教程,以便了解如何创建窗口、文本框、文本区域、按钮等,这样您就可以创建自己的界面:
http://docs.oracle.com/javase/tutorial/uiswing/
例如,您可以使用属性文件非常轻松地保存用户,但如果您提出此类问题,也许您必须从头开始学习 java。