该系统采用java多线程技术java网络编程技术实现一个基于C/S的聊天系统,系统分为客户端及服务器端:

服务器端主要涉及到以下几个线程:

1.在服务器启动之后会启动一个名为ConnectThread的线程,该线程用来处理用户连接;

2.在服务器启动之后同时会启动一个名为ServerUDP的线程,由名字知道该线程通过UDP进行数据传输的,它是接收用户传过来的消息,并将消息转发给所有在线用户;

· 3.在服务器启动之后还会启动一个ExitThread的线程,该线程用来监听退出的用户,当某个用户退出之后,该线程来更新服务器的在线用户列表,以及将新的在线用户列表 通知给所有在线用户。

客户端涉及到更多的线程:

1.首先是一个名为ClientConnectThread的线程,当用户登陆时通过该线程去尝试与服务器端进行连接,如果连接成功,则进入到用户聊天界面

当用户登陆成功之后会启动以下两个线程:

(1)其中一个名为ReceiveMessageThread的线程,用来接收服务器发送过来的消息;

(2)另一个名为ReceiveUserslistThread的线程,用来接收服务器发过来的更新后的用户列表。

2.当用户进行聊天时候会启动一个名为SendMessageThread的线程,通过UDP传输协议向服务器端发送数据。

系统涉及到的主要界面:

javafx在线聊天可以做吗 java在线聊天系统_搜索引擎

输入端口号之后启动了,其中端口号限制在1024到65535之间,启动后等待用户连接,以及接收用户发过来的消息,启动之后的界面为:

javafx在线聊天可以做吗 java在线聊天系统_java_02

客户端登陆界面:

javafx在线聊天可以做吗 java在线聊天系统_javafx在线聊天可以做吗_03

客户端登陆成功之后的界面:

javafx在线聊天可以做吗 java在线聊天系统_搜索引擎_04

登陆多个用户时候,客户端以及服务器端在线用户列表的变化如图所示:

javafx在线聊天可以做吗 java在线聊天系统_javafx在线聊天可以做吗_05

javafx在线聊天可以做吗 java在线聊天系统_搜索引擎_06

其中一个用户退出之后客户端以及服务器端在线用户列表的变化:

javafx在线聊天可以做吗 java在线聊天系统_服务器_07

javafx在线聊天可以做吗 java在线聊天系统_服务器_08

当服务器退出的时候,客户端的提示消息:

javafx在线聊天可以做吗 java在线聊天系统_网络_09

该系统在传输数据的过程中即用到了TCP协议也用到了UDP协议,并且使用了很多线程,熟悉并掌握该系统的实现方法非常有助于理解java多线程以及java网络编程,本系统并不完善,例如还未实现用户与用户之间的单聊,路漫漫其修远兮,吾将上下而求索。最后非常感谢张龙张老师,没有他的视频以及他提供的源代码以我个人可能很难完成这个系统。