java多线程以及java网络编程实现简单的聊天系统
2015-10-15 20:57
1066 查看
该系统采用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网络编程,本系统并不完善,例如还未实现用户与用户之间的单聊,路漫漫其修远兮,吾将上下而求索。最后非常感谢张龙张老师,没有他的视频以及他提供的源代码以我个人可能很难完成这个系统。
服务器端主要涉及到以下几个线程:
1.在服务器启动之后会启动一个名为ConnectThread的线程,该线程用来处理用户连接;
2.在服务器启动之后同时会启动一个名为ServerUDP的线程,由名字知道该线程通过UDP进行数据传输的,它是接收用户传过来的消息,并将消息转发给所有在线用户;
· 3.在服务器启动之后还会启动一个ExitThread的线程,该线程用来监听退出的用户,当某个用户退出之后,该线程来更新服务器的在线用户列表,以及将新的在线用户列表
通知给所有在线用户。
客户端涉及到更多的线程:
1.首先是一个名为ClientConnectThread的线程,当用户登陆时通过该线程去尝试与服务器端进行连接,如果连接成功,则进入到用户聊天界面
当用户登陆成功之后会启动以下两个线程:
(1)其中一个名为ReceiveMessageThread的线程,用来接收服务器发送过来的消息;
(2)另一个名为ReceiveUserslistThread的线程,用来接收服务器发过来的更新后的用户列表。
2.当用户进行聊天时候会启动一个名为SendMessageThread的线程,通过UDP传输协议向服务器端发送数据。
系统涉及到的主要界面:
输入端口号之后启动了,其中端口号限制在1024到65535之间,启动后等待用户连接,以及接收用户发过来的消息,启动之后的界面为:
客户端登陆界面:
客户端登陆成功之后的界面:
登陆多个用户时候,客户端以及服务器端在线用户列表的变化如图所示:
其中一个用户退出之后客户端以及服务器端在线用户列表的变化:
当服务器退出的时候,客户端的提示消息:
该系统在传输数据的过程中即用到了TCP协议也用到了UDP协议,并且使用了很多线程,熟悉并掌握该系统的实现方法非常有助于理解java多线程以及java网络编程,本系统并不完善,例如还未实现用户与用户之间的单聊,路漫漫其修远兮,吾将上下而求索。最后非常感谢张龙张老师,没有他的视频以及他提供的源代码以我个人可能很难完成这个系统。
相关文章推荐
- 网络安全工具nc(NetCat)
- 关于python2.7中无法导入http.server的问题
- EasyUI datagrid checkbox数据设定与取值(转自http://blog.csdn.net/baronyang/article/dnetails/9323463,感谢分享,谢谢)
- android 判断网络连接的工具类
- IOS网络笔记--ASIHTTP类库的使用(上传和下载)
- 《UNIX网络编程》思考1---有关socket的几个重要概念
- 题外:分类篇(音乐风格分类)基于BP神经网络
- ie可以访问http但是无法打开https问题
- IOS 9.0无法访问网络
- PHP 拼接HTTP请求字符串
- Wed Server之httpd基础(2)
- HttpServlet的两个Service()方法区别
- Nginx基础. HTTP多阶段处理大致分析
- TCP基础知识
- HTTP协议详解(真的很经典)
- 网络编程---Android开源组件(Async-http)实现文件上传
- IOS(SystemConfiguration)框架中关于测试连接网络状态相关方法
- 《UNIX网络编程》一书中源代码在ubuntu下如何编译的问题
- CentOS重新启动网络配置,文件/etc/resolv.conf会被错误覆盖或清空解决
- 获取WebBrowser全cookie 和 httpWebRequest 异步获取页面数据