免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2030 | 回复: 5
打印 上一主题 下一主题

[函数] TCP发数据和收数据放到一个循环里面对么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-09 19:52 |只看该作者 |倒序浏览
本帖最后由 LeajonFirst 于 2013-04-09 19:52 编辑

以前没写过socket代码,同时说要放到一个循环里面保证接收完全。不知道这么干会不会出问题

  1. bool CA::recvBuf(StreamSocket& sock, UInt32 bufSize, char* buf)
  2. {
  3.         int count = 0,
  4.                 len;
  5.         try {
  6.                 do {
  7.                         len = sock.receiveBytes(buf + count, bufSize - count);
  8.                         if (len < 0) {
  9.                                 // error
  10.                                 return false;
  11.                         }
  12.                         count += len;
  13.                 } while (count < bufSize);
  14.         } catch (Exception e) {
  15.                 return false;
  16.         }
  17.         if (count != bufSize)
  18.                 return false;
  19.         else
  20.                 return true;
  21. }
复制代码

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
2 [报告]
发表于 2013-04-09 19:55 |只看该作者
读APUE, UNP, TCP/IP去吧... 这种档次的问题根本没法答复

论坛徽章:
0
3 [报告]
发表于 2013-04-09 20:45 |只看该作者
会出问题,我碰到的问题就是线程阻塞,搞了几年都解决不了
最后用的是开源的网络库libcurl。

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
4 [报告]
发表于 2013-04-09 20:55 |只看该作者
冷寒生 发表于 2013-04-09 20:45
会出问题,我碰到的问题就是线程阻塞,搞了几年都解决不了
最后用的是开源的网络库libcurl。


等你用libevent+libcurl写出异步http客户端再给楼主提示吧。

论坛徽章:
0
5 [报告]
发表于 2013-04-12 11:08 |只看该作者
linux_c_py_php 发表于 2013-04-09 20:55
等你用libevent+libcurl写出异步http客户端再给楼主提示吧。

大蛇,能给我一个异步http客户端源代码吗?学习用。小菜一名

论坛徽章:
0
6 [报告]
发表于 2013-04-13 16:48 |只看该作者
本帖最后由 jackarain 于 2013-04-13 16:52 编辑

https://github.com/avplayer/avhttp

一个简单易用的异步http客户端实现, 支持代理, 支持并发, 支持续传, 支持限速...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP