如何在c#中为特定网卡发送报文消息

时间:2017-06-12 08:25:54

标签: c# sockets

我是c#中Socket编程的初学者,我想知道如何为特定的NIC发送数据包数据。

我知道有一种方法可以在python3中使用setsockopt设置特定的网络设备,就像那样

    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, 25, str(str(netinterface) + '\0').encode('UTF-8')) // netinterface => 'eth1'
    except OSError :
        print("Failed set eth1")

有eth0和eth1,我确实成功地将数据包发送到eth1。

我找到了这样的套接字方式选项,但我不知道如何使用这个API来解析网卡。

        UdpClient udpclient = new UdpClient(new IPEndPoint(IPAddress.IPv6Any, 15118));
        IPAddress multicateAddress = IPAddress.Parse("FF02::1");
        udpclient.JoinMulticastGroup(multicateAddress);

        Socket uSocket = udpclient.Client;

        uSocket.SetSocketOption() // <- How... to?

如果有教程或任何文件,它会对我有帮助。

请评论thx。

1 个答案:

答案 0 :(得分:0)

您的套接字bind是否为您要查找或修改您的操作系统路由表以通过指定接口将数据包发送到特定网络的NIC上某个接口的特定IP地址。

UdpClient不仅仅是一个套接字,但无论如何我都没有看到将其绑定到特定IP的问题。有关详细信息,请参阅the docs