QT项目复习4——转发聊天数据

三、客户端

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

你可能感兴趣的:(QT项目复习4——转发聊天数据)