我可以选择用于UDP通信的以太网端口吗?

时间:2013-05-30 15:41:03

标签: sockets udp matlab nic

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

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

3 个答案:

答案 0 :(得分:4)

我认为这里有趣的问题是,为什么你会想要选择通过哪个网卡进行通信?

除非我忽略了这一点,否则您的应用程序应仅指定要连接的服务器(IP和端口),并且操作系统的TCP / IP路由方案应根据目标网络选择要使用的适当NIC。

答案 1 :(得分:2)

您可以在调用LocalHost时选择要使用udp()属性的接口:

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

所以在你的情况下

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

顺便说一下,如果你好奇如何处理这个问题:你可以找到propinfo(u)对象的所有属性。然后找到每个属性的文档,听起来就像你正在寻找的那样。

答案 2 :(得分:1)

我过去没有做过这样的事情,所以我只是从理论的角度来讲。据我所知,LocalHost决定了本地机器连接外部实体的方式。

以下是文档的链接:LocalHost

在创建UDP连接之前,您将不得不设置LocalHost设置。我的印象是你知道你拥有的不同网络接口的本地IP地址,并且它们是静态的。我确信有一种方法可以动态地获取这些信息,但我并不熟悉这一点。

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