select返回1,但是读取不到数据!

xuqing1980 2006-10-20 09:32:57
我前端时间偶然在论坛上看到类似的帖子,但是今天早了很久都找不到,所以再提问,不要见笑!
问题1:
我在select返回>1的时候,但是却读不到数据,这是因为什么原因?
那在select如果确定一个描述符是发送就绪,那又如何确定这个描述符可写或者可读?

问题2:
如果我要判断描述符可读,select需要置的参数是第三个?
如果我要判断描述符可写,select需要置的参数是第二个?
我看了"Proxy源代码分析--谈谈如何学习linux网络编程"这篇文章中
“在本例中,我们只关心两个套接字描述符是否可写,因此执行这样的select()函数:
   select(FD_SETSIZE,&rdfdset,NULL,NULL,NULL)”



...全文
568 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
NNBWOLF 2006-10-24
  • 打赏
  • 举报
回复
socket errno le
bs2x418 2006-10-24
  • 打赏
  • 举报
回复
我在select返回>1的时候,但是却读不到数据,这是因为什么原因?

也许返回的是空字符,也就是'\0',如果读取时,用数组保存的话就好象是没有数据一样,要看读的函数的返回值才能看出来有几个数据.

select(FD_SETSIZE,&rdfdset,NULL,NULL,NULL)”是检测是否可读的,但是后面的等待值为NULL最好是设顶个时间.
umbrella1984 2006-10-20
  • 打赏
  • 举报
回复
第二是读,第三是写,你反过来了。

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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