客户端和服务器都在给定端口上发送和接收。在生产中,它们位于单独的机器上,没有问题。在开发中,将它们在同一台机器上运行将大大方便,而不必进行部署以及建立和拆除远程调试会话。
我尝试过
var uc = new UdpClient();
var ep = new IPEndPoint(address, port);
uc.ExclusiveAddressUse = false;
uc.Client.Bind(ep);
并且它不是 barf ,但是我仍然无法将多个侦听器绑定到同一端点。事实发现之后,我发现ExclusiveAddressUse无论如何都默认为false,因此这种方法只会产生额外的代码。
这有可能吗?
答案 0 :(得分:1)
您显然不能在同一台计算机上使用相同的端口,只需对debug
使用#if directive并相应地更改端口
以下内容可能会帮助
客户
#if DEBUG
uc client = new UdpClient(34534);
#else
uc client = new UdpClient();
#endif
初始化UdpClient类的新实例,并将其绑定到 提供了本地端口号。
备注
此构造函数创建一个基础Socket并将其绑定到端口 您打算与之通信的电话号码。 在以下情况下使用此构造函数 您只对设置本地端口号感兴趣。的 基础服务提供商将分配本地IP地址。如果你 将0传递给构造函数,基础服务提供者将分配 端口号。如果使用此构造函数,则UdpClient实例为 设置了不能更改的IPv4地址族或 被具有IPv6目标的connect方法调用覆盖。
免责声明,未经测试,只需阅读文档,可能是错误的:)