Xamarin crossplatform ipv6 ping

问题描述 投票:-1回答:1

我正在寻找一个跨平台解决方案,在dynv6上对我的dyndns进行ping操作,该dynv6绑定到我的ipv6地址,端口8443通过SSL打开。

我希望我的设备检查地址是否可用于进一步的网络请求。简单的Web请求也是可能的,但即使只用OK()回答,它们的回答时间也是3秒。

所以我想起了平安。我已经找到了System.Net.NetworkInformation.Ping,但这不能很好地工作,因为它总是sais超时。即使我将超时提高到超过1秒。我在我的控制台测试了它,我得到了很好的结果。就在用android启动时它会崩溃。


也许你会发现这很有趣:TcpClient.Connect确实有效。 BeginConnect没有。 “使用了与所请求的协议不兼容的地址”......好吧Connect很好但我需要定义超时,因为我想在服务器脱机时中断。

c# android xamarin networking ping
1个回答
0
投票

因此对于每个遇到TcpClient.BeginConnect问题的人来说,只需要做一个小技巧:

TcpClient client = new TcpClient();
Task.Run(() =>
{
    client.Connect(host, port);
});
Task.Delay(100).Wait();

然后您可以访问client.Connected属性以查看它是否已在该时间内连接。仍然不知道为什么我的BeginConnect不起作用..或者为什么连连接10分钟前没有工作...也许我拼错了一些东西但是啊:)

© www.soinside.com 2019 - 2024. All rights reserved.