三、客户端
-
定时器
的功能可以实时
更新用户列表——
- 需要加上
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
大小不对。