首页 > 解决方案 > 为 2 个不同的 udp 客户端使用 2 个 wifi

问题描述

我有 ac#win 应用程序。我正在使用 wifi 进行互联网连接。

我目前有一个上传到我的服务器数据的 udp 客户端。我有另一个上传到本地局域网服务器的 udp 客户端。

数据在两个 udp 通道上每秒发送 10 次。

有时数据没有发送,我在其中一个上遇到“连接被拒绝”错误。我的想法是,如果我将另一个 wifi 插入我的 USB 端口,我将获得另一个分配的 dhcp 地址,我可以在 1 个 wifi 点上发送数据,在另一个上发送数据。

这可以做到吗。我可以指定从哪个 IP 地址发送数据吗?

谢谢

这是我当前的代码:

内部类 WanService { 私有静态 UdpClient _udpCloudClient;

    public static void Start()
    {
        while (true)
        {
            try
            {
                Thread.Sleep(3000);
                _udpCloudClient = new UdpClient(Constants.GetUdpServerIp(), Constants.ServerUploadPort);
            }
            catch (Exception ex)
            {
                //handle
            }

            if (_udpCloudClient?.Client == null)
            {
                continue;
            }

            if (_udpCloudClient.Client.Connected) return;
        }
    }

    public static void SendImage()
    {
        try
        {
            if (_udpCloudClient == null) return;

       
            _udpCloudClient.Send(Globals.FinalPacket, Globals.FinalPacket.Length);
          
        }
        catch (SocketException sex)
        {
            //handle
        }
        catch (Exception ex)
        {
           //handle
        }
        finally
        {
            if ((_udpCloudClient != null && !_udpCloudClient.Client.Connected) || (_udpCloudClient == null))
            {
                Start();
            }
        }
    }
}

标签: c#wifiudpclient

解决方案


不,您不能直接使用这样的高级客户端选择发送IP地址,这是由Windows完成的。

如果您有机会修改服务器和客户端,最好使用某种类型的库来为您处理有损连接。我正在考虑GRPC 的流媒体功能。


推荐阅读