Задний план:
Я запускаю кроссплатформенное приложение Xamarin.Forms на Nexus 7 (Android API уровня 22), которое настроено (по порядку):
10.0.0.0/5000)на старте.
Visual Studio 2019 Preview (v16.0.0 Preview 1.1), Xamarin.Forms (v3.4.0.1008975) и Xamarin.Android (v28.0.0).hostapd и dnsmasq на Raspbian Stretch. Эта точка доступа раздает IP-адреса в диапазоне от 10.0.0.1 до 10.0.0.20 со шлюзом по умолчанию 10.0.0.0. В настоящее время в сети нет Интернета, но я могу добавить его в будущем.TcpClient, чтобы оно могло получать данные датчиков от Pi.Проблема:
Приложение успешно подключается к Wi-Fi и Bluetooth (шаги 1 и 3), но я получаю System.Net.Sockets.SocketException (HRESULT: 0x80004005), когда оно пытается подключиться к скрипту Python (шаг 2). Вот трассировка стека:
{System.Net.Sockets.SocketException (0x80004005): Network is unreachable
at System.Net.Sockets.SocketAsyncResult.CheckIfThrowDelayedException ()
[0x00014] in <165f7048c1ba483e8b4fcc215c691e9e>:0
at System.Net.Sockets.Socket.EndConnect (System.IAsyncResult asyncResult)
[0x0002c] in <165f7048c1ba483e8b4fcc215c691e9e>:0
at System.Net.Sockets.TcpClient.EndConnect (System.IAsyncResult asyncResult)
[0x0000c] in <165f7048c1ba483e8b4fcc215c691e9e>:0
at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic
(System.IAsyncResult iar, System.Func`2[T,TResult] endFunction,
System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult]
promise, System.Boolean requiresSynchronization) [0x00019] in
<76298308b9444eca9d8db328b3554473>:0
--- End of stack trace from previous location where exception was thrown ---
at Liberty_Console.Models.Statics+<ConnectAsync>d__2.MoveNext () [0x00052]
in C:\Users\Micah\Source\Repos\Liberty Console\Liberty Console\Liberty
Console\Models\Statics.cs:27 }
И это код, который его вызывает:
TcpClient client = new TcpClient(AddressFamily.InterNetwork);
await client.ConnectAsync("10.0.0.0", 5000); //System.Net.Sockets.SocketException
У меня есть:
android.permission.ACCESS_NETWORK_STATEandroid.permission.ACCESS_WIFI_STATEandroid.permission.BLUETOOTHandroid.permission.BLUETOOTH_ADMINandroid.permission.CHANGE_NETWORK_STATEandroid.permission.CHANGE_WIFI_STATEandroid.permission.INTERNET10.0.0.X).5000 открыт на маршрутизаторе / шлюзеSystem.Net.NetworkInformation.PingМой вычет:
Судя по моим тестам и отладке, кажется, что приложение не может делать запросы в сети (следовательно, оно «недоступно»). Это может быть связано с:
192.168.1.X вместо 10.0.0.X)Любая помощь приветствуется!
Сообщите мне, если вопрос требует более подробной информации или пояснения.
@ 1SaeedSalehi в том-то и дело: IP адрес в настройках планшета правильный (в том же диапазоне), но TcpClient все равно не может подключиться.





убедитесь, что они находятся в одном диапазоне IP