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

来源:互联网 发布:php搜索引擎源码 编辑:程序博客网 时间:2024/05/22 04:36

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

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

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

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

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

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

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

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

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

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

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



系统涉及到的主要界面:

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

客户端登陆界面:

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


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


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


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


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


0 0