QT网络编程问题求解

T_Sky_ 2016-04-19 03:58:04



大神们求解 代码为图1 图2发送

当我只需要发一条的时候 显示为图3

让我需要发多条的时候 显示为图4

为什么不是发送多条图3 而是像图4这样堵一起了呢?

是FOR循环的原因吗?

我要怎么把图4变成多条图3发出去呢

我以为是FOR循环一次就发一次信号 然后发一次图3 服务端就接一次数据 但是现在收到的数据就是挤在一堆的

求大神解惑
...全文
222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
诺水城子 2016-04-25
  • 打赏
  • 举报
回复
TCP有一个缓冲区,如果发多条数据,时间间隔过短且没有使用flush刷出缓冲区,TCP会等待缓冲区满了才会发送出去,导致发送的多条数据在对方收到时变成了一条
T_Sky_ 2016-04-20
  • 打赏
  • 举报
回复

现在是这样
我就是想把服务端的这个表同步到客户端
但是我发现后面打开的客户端获取不到前面的客户端信息
所以我每次打开一个新客户端 就把列表同步一遍
然后就堵住了
T_Sky_ 2016-04-20
  • 打赏
  • 举报
回复
引用 4 楼 u013466477 的回复:
可能时间间隔太短,服务端还没收到第一条,然后你又请求,所以就只接收了一条叠在一起的
对了 我现在是服务端发给客户端
冷静忍耐 2016-04-20
  • 打赏
  • 举报
回复
可能时间间隔太短,服务端还没收到第一条,然后你又请求,所以就只接收了一条叠在一起的
T_Sky_ 2016-04-20
  • 打赏
  • 举报
回复
引用 4 楼 u013466477 的回复:
可能时间间隔太短,服务端还没收到第一条,然后你又请求,所以就只接收了一条叠在一起的
那是用阻塞吗?
T_Sky_ 2016-04-19
  • 打赏
  • 举报
回复
重点就在于 为什么不是给一次信号他就发一次消息 发过去的数据应该一条条的 现在变成很多条挤成一条了
T_Sky_ 2016-04-19
  • 打赏
  • 举报
回复
引用 1 楼 yhgaven 的回复:
没有tcpSocket->flush();
flush 用了 还是堵一起
yhgaven 2016-04-19
  • 打赏
  • 举报
回复
没有tcpSocket->flush();

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧