免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: vafls_scott
打印 上一主题 下一主题

非阻塞socket转为阻塞后的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-01-31 19:47 |只看该作者
--

说得好。谢谢 JohnBull 版主。

--

论坛徽章:
0
12 [报告]
发表于 2007-01-31 19:48 |只看该作者
原帖由 醉卧水云间 于 2007-1-31 19:30 发表
用epoll移植到windows下试试!


windows下有epoll?不会的吧?
epoll是Linux独有的机制,非标准调用,使用的时候一定要考虑好移植问题。

论坛徽章:
0
13 [报告]
发表于 2007-01-31 19:54 |只看该作者
原帖由 langue 于 2007-1-31 19:47 发表
--

说得好。谢谢 JohnBull 版主。

--


呵呵,客气了,欢迎拍砖!

论坛徽章:
0
14 [报告]
发表于 2007-01-31 20:47 |只看该作者
我也觉得select这个函数本身就很别扭

论坛徽章:
0
15 [报告]
发表于 2007-01-31 20:50 |只看该作者
windows下的select也不好用,windows下写网络程序还是WSA打头的函数好用.

论坛徽章:
0
16 [报告]
发表于 2007-01-31 22:01 |只看该作者
一定是LZ的程序有问题了,而不是SELECT怎么样了.

read 返回0, 你可以打印出ERRNO 看是怎么了, 一般是错误了

论坛徽章:
0
17 [报告]
发表于 2007-01-31 22:40 |只看该作者
原帖由 思一克 于 2007-1-31 22:01 发表
一定是LZ的程序有问题了,而不是SELECT怎么样了.

read 返回0, 你可以打印出ERRNO 看是怎么了, 一般是错误了


read 返回0,是对方关闭了连接,而不是出了错,这个时候是打印不出来错误的

论坛徽章:
0
18 [报告]
发表于 2007-01-31 23:21 |只看该作者
楼主为啥要用非阻塞connect呢?这是网络编程中最不易移植的部分。
unix网络编程第三版16.4节分析的比较细,可以去看看。

[ 本帖最后由 susesuse 于 2007-1-31 23:32 编辑 ]

论坛徽章:
0
19 [报告]
发表于 2007-02-01 09:00 |只看该作者
你看man select_tut有非常好的例子和说明。

用select一般不用NON BLOCKING socket.


Except as indicated in 7., the functions read(), recv(), write(), and send() never have a return  value  less
              than 1 except if an error has occurred. For instance, a read() on a pipe where the other end has died returns
              zero (so does an end-of-file error), but only returns zero once (a followup read or write  will  return  -1).
              Should  any  of  these functions return 0 or -1, you should not pass that descriptor to select ever again. In
              the above example, I close the descriptor immediately, and then set it to -1 to prevent it being included  in
              a set.

论坛徽章:
0
20 [报告]
发表于 2007-02-01 09:17 |只看该作者
原帖由 醉卧水云间 于 2007-1-31 19:30 发表
select 恶心?没听说过!用epoll移植到windows下试试!

作通讯程序你还想着移植的事么?通讯对效率的要求多高阿,还是要针对不同的平台单独考虑吧,在*nix下你就用epoll,在windows下你就用完成端口。不过我觉得早晚windows也会支持epoll,就像当年支持socket一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP