4

我正在编写将通过 UDP 与网络通信的代码。从udp文档中,我所要做的就是指定目标地址和端口,然后我就可以开始发送/接收数据了。

我有两个独立的以太网端口(可能还有一个 USB 转 RJ45 适配器),我希望能够在这些端口上进行通信。文档没有说明是否有办法选择我的数据应该输出到哪个 NIC 卡上;可以指定吗?我的用户可能会使用他们的主以太网端口连接到 Internet,然后使用我的代码与第二个端口(或 USB 转 RJ45)进行通信。(这是两个独立的网络。)

4

3 回答 3

4

我认为这里有趣的问题是,您为什么要选择通过哪个 NIC 进行通信?

除非我错过了要点,否则您的应用程序应该只指定要连接的服务器(ip 和端口),并且操作系统的 TCP/IP 路由方案应该根据目标网络选择要使用的正确 NIC。

于 2013-06-11T12:53:38.730 回答
2

您可以LocalHost在调用时选择与属性一起使用的接口udp()

http://www.mathworks.com/help/instrument/localhost.html

所以在你的情况下

u = udp(rhost,rport,'LocalHost','IP_OF_NIC')

顺便说一句,如果您好奇如何处理这个问题:您可以使用propinfo(u). 然后找到听起来像您正在寻找的每个属性的文档。

于 2013-06-11T13:39:52.147 回答
1

我过去没有做过这样的事情,所以我只是从理论上讲。据我了解,LocalHost 决定了本地计算机如何连接到外部实体。

这是文档的链接:LocalHost

您显然必须在创​​建 UDP 连接之前设置 LocalHost 设置。我也正在摆脱这样一种印象,即您知道您拥有的不同网络接口的本地 IP 地址并且它们是静态的。我确信会有一种方法可以动态地获取这些信息,但我不熟悉这一点。

祝你好运,希望对你有所帮助!本

于 2013-06-05T18:57:34.897 回答