【发布时间】:2013-06-17 21:47:38
【问题描述】:
在互联网上搜索了几个小时后,我仍然无法找到我的问题的答案。
我的任务是创建一个服务器,它接受来自可变数量接口的套接字(在配置文件中以eth0, eth1, etc. 给出)。
最简单的方法是什么?
有没有办法将一个套接字绑定到多个接口?我还没有找到这样做的方法。
或者,我是否必须使用INADDR_ANY 并以某种方式找出发送数据包的接口?
还有其他方法可以解决这个问题吗?
【问题讨论】:
在互联网上搜索了几个小时后,我仍然无法找到我的问题的答案。
我的任务是创建一个服务器,它接受来自可变数量接口的套接字(在配置文件中以eth0, eth1, etc. 给出)。
最简单的方法是什么?
有没有办法将一个套接字绑定到多个接口?我还没有找到这样做的方法。
或者,我是否必须使用INADDR_ANY 并以某种方式找出发送数据包的接口?
还有其他方法可以解决这个问题吗?
【问题讨论】:
您要么将bind(2) 一个 套接字与INADDR_ANY 连接到所有 接口,要么创建多个套接字 并将每个套接字绑定到所需接口的 IP 地址。在任何情况下,请在套接字上设置SO_REUSEADDR 选项。
【讨论】:
select)。第一个选项对应用程序来说似乎是透明的,所以在我看来更容易编程。你会同意吗?在什么情况下我们会选择第二种方案?