QT tcp 发送的神奇事件,特别困惑。求大神解救

yuzoubawang888 2012-12-08 08:56:21
我这边客户端向服务器发送数据;假设A();B();C();三个函数里面都有调用write();也就是向服务器发送三次数据;但是服务器却一次性全部接收到三个函数发过来的总数据,数据没丢失。我的目的是我想服务器发送三次,服务器分三次接收,而不是一次性全部接收。此时我清缓存,但是我调用三个函数,接收却变成了两次。后两个函数的数据合在一起发送过来的。当我随便屏蔽一个函数,都可以分两次。也就是说三个函数只能分两次发送。而与函数的顺序无关。这是为啥呢。。。?
...全文
267 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
嵌入式农民工 2012-12-11
  • 打赏
  • 举报
回复
同时接受就对了,这时人家就那样做好了的。你要实现不同的接受,你可以给他们定自己的协议,在同时接收后分包处理。
烂番 2012-12-11
  • 打赏
  • 举报
回复
发送端/接收端,底层都是有缓冲的 其它的就不解释了
yuzoubawang888 2012-12-08
  • 打赏
  • 举报
回复
紧急求助啊。。。。
  • 打赏
  • 举报
回复
实在不行 就用不同的端口号
雲天之巔 2012-12-08
  • 打赏
  • 举报
回复
如果你是连续一起发的肯定是会一起接收的啊》 我以前这么做过,曾经我还天真的以为,加一个watiforbytewrite就可以了。 现在明白了,这个是需要自己弄个通信协议的。 一般网络通信都需要自己制定一个通信协议的。 比如你发了一,服务器端在收到一后给你一个答复, 你接着发二..... 最简单的通信协议就这样了、

16,215

社区成员

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

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