三、客户端
-
定时器的功能可以实时更新用户列表——
- 需要加上
while(1),因为如果数据包是这样的——
3.1 弹框的实现
- 聊天框的实现——
直接来一个
QDialog类
输入框使用
QTextEdit来表示需要
其他聊天人otherID的信息弹框需要我们new一个出来——
-
聊天时候组合的数据包的样子——
-
聊天数据的发送使用信号槽的方式来实现——
- 信号——
-
槽函数——
客户端B收到客户端A发送来的数据——
找到
对应的窗口——
使用
map
什么时候使用map来插入一条记录呢?当窗口建立完成的时候就可以了
除此之外,为了每个用户的每个好友都只能打开一个好友窗口,所以要提前判个空——
- 转发到对应ID的Dialog——
- 自动弹框——
三、服务器
-
服务器端读到客户端发来的聊天数据后——
获取
目的ID(destFD)即可,然后直接转发——
- 用户只能显示2个的问题——
通过打印出的index来查看出现的问题,
index = 10意味着字节数只有10个(包头包尾加2个ID),应该是插入链表时候的问题——
一开始写成了sizeof(send_buf),但是send_buf求size_of是一个指针的大小,所以传进去的buf大小不对。













