Linux 中的应用程序有什么办法可以访问 2 个网卡吗?

发布于 2024-09-03 18:44:53 字数 121 浏览 11 评论 0原文

我的应用程序需要访问两个网卡。一个用于接收数据(eth0),另一个用于发送数据(3G 调制解调器)。

通常,内核强制应用程序一次仅使用一张卡。

我可以做些什么来让它运行吗?

谢谢。

My app needs to access two network cards. One to receive data (eth0) and another to send data (3G modem).

Normally, the kernel force the app to work with only one card at a time.

Is there any thing that I can do to make it run?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

彡翼 2024-09-10 18:44:54

内核并不强迫您使用单一接口。如果您没有另外指定,它只会选择默认接口。您可以通过在bind()命令中指定其IP地址来指定特定接口。要获取可用接口及其名称的列表,请使用 ioctl(SIOCGIFCONF) 函数。

这是一个示例: http://techpulp.com /2008/10/get-list-of-interfaces-using-siocgifconf-ioctl/

The kernel is not forcing you to use a single interface. It just chooses a default interface if you don't specify otherwise. You can specify a specific interface by specifying it's IP address in the bind() command. To get a list of the available interfaces and their names, use the ioctl(SIOCGIFCONF) function.

Here's an example: http://techpulp.com/2008/10/get-list-of-interfaces-using-siocgifconf-ioctl/

人间☆小暴躁 2024-09-10 18:44:54

您可以使用 bind(2)并在其中一个上发送并在另一个上监听。

You can make two different UDP sockets bind to separate NICs with the bind(2) and send on one and listen on the other.

青春如此纠结 2024-09-10 18:44:53

内核不做这样的事情。

内核将根据每个卡分配的路由信息​​和网络将您的流量路由到最合适的最终目的地。但是,如果您使用 TCP,则双向通信将仅使用一条路由,因为只有一个地址与该连接关联。

如果您尝试实现多宿主发送/接收系统,则普通 TCP 不支持此功能 - 您将需要使用可能在内核中实现的不同协议。

The kernel does no such thing.

The kernel will route your traffic to the most appropriate end destination based upon the routing information and networks each card is assigned. However, if you are using TCP, your bidirectional communication will use only one route as there is only one address associated with that connection.

If you are trying to implement an multi-homing send/receive system, this is not supported in normal TCP - you will need to use a different protocol, likely implemented in the kernel.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文