QT和linux实现简易远程聊天工具
来源:互联网 发布:mysql主键和外键作用 编辑:程序博客网 时间:2024/05/24 01:41
1.实现功能:
打开客户端有一个登陆窗口,有登陆,注册两种功能(bug肯定很多),登陆成功会在左边显示在线用户数量和列表,点击对应的用户名即可给该用户发送消息,客户端还可以记录聊天记录,如果将服务器运行于云服务器或有公网ip的linux上,即可实现任意两台电脑之间的消息通信。
2.使用方法:
解压chat.zip,将linuxserver文件夹复制到服务器上,在shell中执行make即可编译出chatserver,如果报sqlite3错误,那么需要安装sqlite3数据库,如果在ubuntu上运行,可以执行下面两条命令来安装sqlite3和库文件:
sudo apt-get install sqlite3
sudo apt-get install libsqlite3-dev
然后执行./chatserver即可运行服务器(后台运行),服务器会在当前目录下生成user_data数据库文件用来保存用户名和密码,客户端只有源代码文件,所以需要安装QT,我用的是QT5.4.2,安装好QT之后,打开chat.pro,然后编译运行,可以同时运行多个客户端来来测试。
3.实现原理:
程序分为服务器端和客户端,消息通过 TCP协议传输,服务器通过sqlite3保存用户名和密码,实现登录验证和注册功能,服务器通过多线程来实现并发服务,实现远程聊天的核心在于服务器能否正确的转发消息,服务器会在每个用户登录时记录下该用户名和对应的socket描述符,如果用户A向用户B发送消息,这时服务器已经了保存A和B的socket(登录时记录下的),发现目标用户名是B,那么会遍历记录下的用户名和socket,找到B对应的socket,然后发送出去,另外,服务器会在有用户登录和下线时给每一个在线用户发送在线用户数和用户名,好让客户端更新自己的在线用户列表。
4.效果图(客户端):
源代码下载地址:http://download.csdn.net/download/u014783685/9947429
- QT和linux实现简易远程聊天工具
- socket实现简易聊天工具
- 基于QT 局域网聊天工具实现
- Python实现简易局域网视频聊天工具
- QT实现简易Linux命令执行器
- QT实现局域网聊天工具(带UDP文件传输)
- jquery+asp.net实现的一个简易web聊天工具
- 基于WebServices简易网络聊天工具的设计与实现
- java+socket 简易聊天工具
- Socket简易聊天工具
- Qt实现简易计算器
- linux 下Qt初级教程(一)实现简易的计算器
- java 简易聊天工具(TCP)
- QT一个简易画板实现
- QT下简易画板实现
- QT下简易画板实现
- QT下简易画板实现
- QT下简易画板实现
- Codeforces
- 回归2017-总纲
- Enumeration与Iterator对比
- 快速排序
- 浏览器缓存
- QT和linux实现简易远程聊天工具
- 机器学习笔记(三)----逻辑回归
- json的解析
- vue.js实现瀑布流之vue-waterfall-easy
- C51中的位移
- HDU 6170(Two strings-DP)
- Servlet中service的参数转换成http的类型
- CodeForces
- 下载更新APP版本号