select函数。

Tom_殇子 2012-10-22 05:38:02
很奇怪的问题请高手解释!!!
环境:虚拟机ubuntu linux系统, 有两个虚拟网卡。

当只有一个网卡启动时,调用select()函数返回值是大于0 的。程序可以 正常的运行。
当两个网卡一起启动时,调用select()函数返回值是小于0 的。程序不能正常的运行了。

请问那位高手 可以帮个忙…… 解释一下……
...全文
133 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tom_殇子 2012-10-23
  • 打赏
  • 举报
回复
嗯…… 两位果然都是高手 啊…… 我现在具体说一个我的代码内容.
代码内容描述:
1、创建套接口,setsockopt()绑定eth0网口。
2、connect()连接服务器。
3、select()等待套接口可写。
a、当只开一个网口时,绑定eth0,程序正常运行。
b、当开了两个网口时,绑定eth0,程序连接失败。(看到select返回值为“0”)
c、当只开一个网口时,不绑定eth0,程序正常运行。
d、当开了两个网口时,不绑定eth0,程序也能正常运行。

现在我要做的是b 因为我要把第二个程序绑定到eth1网口上。
dongjiawei316 2012-10-23
  • 打赏
  • 举报
回复
你的socket绑定的IP地址不正确吗?你仅仅绑定其中一个网卡试试,
fdl19881 2012-10-22
  • 打赏
  • 举报
回复
select小于0时,返回-1,请问errno值是多少。
用这句打印错误原因
perror("select");

23,118

社区成员

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

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