代码之家  ›  专栏  ›  技术社区  ›  Peter Wone

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

  •  0
  • Peter Wone  · 技术社区  · 6 年前

    客户端和服务器在给定端口上发送和接收。在生产中,它们是在单独的机器上,没有问题。在开发中,在同一台机器上运行它们会更方便,并且避免了部署、设置和拆卸远程调试会话的需要。

    我试过这个

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

    但事实并非如此 巴夫 但我仍然不能将多个侦听器绑定到同一个端点。在我发现exclusiveAddressuse无论如何默认为false之后,这种方法只生成额外的代码。

    这有可能吗?如果有,怎么办?

    1 回复  |  直到 6 年前
        1
  •  1
  •   TheGeneral    6 年前

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

    以下可能有帮助

    顾客

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

    UdpClient Constructor (Int32)

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

    评论

    此构造函数创建基础套接字并将其绑定到端口 您打算从中进行通信的号码。 如果 您只对设置本地端口号感兴趣 .这个 基础服务提供程序将分配本地IP地址。如果你 将0传递给构造函数,基础服务提供程序将 端口号。如果使用此构造函数,则udpclient实例为 使用无法更改的IPv4地址系列设置,或 被具有IPv6目标的Connect方法调用覆盖。

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