如何在同一台计算机上运行客户端和服务器UDP侦听器

时间:2018-06-26 01:26:29

标签: c# networking udp udpclient

客户端和服务器都在给定端口上发送和接收。在生产中,它们位于单独的机器上,没有问题。在开发中,将它们在同一台机器上运行将大大方便,而不必进行部署以及建立和拆除远程调试会话。

我尝试过

var uc = new UdpClient();
var ep = new IPEndPoint(address, port);
uc.ExclusiveAddressUse = false;
uc.Client.Bind(ep);

并且它不是 barf ,但是我仍然无法将多个侦听器绑定到同一端点。事实发现之后,我发现ExclusiveAddressUse无论如何都默认为false,因此这种方法只会产生额外的代码。

这有可能吗?

1 个答案:

答案 0 :(得分:1)

您显然不能在同一台计算机上使用相同的端口,只需对debug使用#if directive并相应地更改端口

以下内容可能会帮助

客户

#if DEBUG
    uc client = new UdpClient(34534);
#else
    uc client = new UdpClient();
#endif

UdpClient Constructor (Int32)

  

初始化UdpClient类的新实例,并将其绑定到   提供了本地端口号。

备注

  

此构造函数创建一个基础Socket并将其绑定到端口   您打算与之通信的电话号码。 在以下情况下使用此构造函数   您只对设置本地端口号感兴趣。的   基础服务提供商将分配本地IP地址。如果你   将0传递给构造函数,基础服务提供者将分配   端口号。如果使用此构造函数,则UdpClient实例为   设置了不能更改的IPv4地址族或   被具有IPv6目标的connect方法调用覆盖。

免责声明,未经测试,只需阅读文档,可能是错误的:)