java多线程以及java网络编程实现简单的聊天系统

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

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

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

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

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

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

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

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

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

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

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



系统涉及到的主要界面:

java多线程以及java网络编程实现简单的聊天系统_第1张图片

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

java多线程以及java网络编程实现简单的聊天系统_第2张图片

客户端登陆界面:

java多线程以及java网络编程实现简单的聊天系统_第3张图片

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

java多线程以及java网络编程实现简单的聊天系统_第4张图片

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

java多线程以及java网络编程实现简单的聊天系统_第5张图片

java多线程以及java网络编程实现简单的聊天系统_第6张图片

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

java多线程以及java网络编程实现简单的聊天系统_第7张图片

java多线程以及java网络编程实现简单的聊天系统_第8张图片

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

java多线程以及java网络编程实现简单的聊天系统_第9张图片

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


你可能感兴趣的:(java多线程以及java网络编程实现简单的聊天系统)