我有一个数据报套接字,用于发送和接收多播数据包。使用时,它会在物理设备上的所有适配器上发送和接收数据。有没有办法指定使用哪个适配器而不是全部使用它们?
如果我与
绑定await _datagramSocket.BindServiceNameAsync(ServicePort);
然后使用所有适配器。如果我与
绑定await _datagramSocket.BindEndpointAsync(new HostName(AdapterHostname), ServicePort);
然后它抛出以下错误: “通常只允许使用每个套接字地址(协议/网络地址/端口)。(HRESULT异常:0x80072740)”
答案 0 :(得分:0)
通常套接字绑定IPADDRESS和PORT号码。当您尝试使用相同的PORT编号再次绑定它时,它将通过错误。您要么处置第一个连接(这可能需要一段时间,在两个调用之间使用一些休眠),然后尝试再次绑定 要么 使用不同的端口号。