【发布时间】:2020-08-17 19:43:17
【问题描述】:
我有一个 c# win 应用程序。 我正在使用 wifi 连接互联网。
我目前有一个 udp 客户端,可以将数据上传到我的服务器。 我有另一个上传到本地局域网服务器的 udp 客户端。
数据在两个 udp 通道上每秒发送 10 次。
有时数据未发送,我在其中一个上遇到“连接被拒绝”错误。 我的想法是,如果我将另一个 wifi 插入我的 USB 端口,我将获得另一个分配的 dhcp 地址,我可以在一个 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();
}
}
}
}
【问题讨论】:
-
您是如何发送数据的,您是否在任何地方致电
UdpClient.Connect?请edit您的问题提供minimal reproducible example -
@MindSwipe 嗨,是的,2 秒。谢谢
-
该错误是由于端口号已在使用中。所以很可能一个旧的连接没有关闭。从 cmd.exe > Netstat -a 验证连接是否关闭并检查您正在使用的端口的状态。
-
@jdweng 没有未使用的端口。这并没有解决我为使用不同端口的 2 个独立 udp 客户端使用 2 个独立 wifi 加密狗的问题
-
@MindSwipe 我的代码很好。我只是想知道我是否可以同时使用 2 个不同的 wifi 连接