2017-06-12 71 views
-1

我是一个初学者,在C#中使用Socket编程,我想知道如何为特定NIC发送数据包数据。如何在C#中发送特定NIC的数据包消息

我知道有一种方法来设置特定网络设备使用setsockopt的在python3像

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的NIC。

 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。

回答

0

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

UdpClient不只是一个套接字,但无论如何,我没有看到一个问题,在绑定到一个特定的IP。详情请参阅the docs

相关问题