QT和linux实现简易远程聊天工具

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



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值