WinRT多播套接字绑定到单个适配器

时间:2012-10-04 12:07:45

标签: c# .net windows-runtime

我有一个数据报套接字,用于发送和接收多播数据包。使用时,它会在物理设备上的所有适配器上发送和接收数据。有没有办法指定使用哪个适配器而不是全部使用它们?

如果我与

绑定
await _datagramSocket.BindServiceNameAsync(ServicePort);

然后使用所有适配器。如果我与

绑定
await _datagramSocket.BindEndpointAsync(new HostName(AdapterHostname), ServicePort);

然后它抛出以下错误:  “通常只允许使用每个套接字地址(协议/网络地址/端口)。(HRESULT异常:0x80072740)”

1 个答案:

答案 0 :(得分:0)

通常套接字绑定IPADDRESS和PORT号码。当您尝试使用相同的PORT编号再次绑定它时,它将通过错误。您要么处置第一个连接(这可能需要一段时间,在两个调用之间使用一些休眠),然后尝试再次绑定 要么 使用不同的端口号。