【发布时间】:2019-07-17 07:53:34
【问题描述】:
从 Android 连接到 PC 时,Indy TIdTCPClient 错误:socket error # 113 no rout to host。
您好,我知道我最近问了很多关于 Indy Components 的问题,但是我在尝试将我的 Android 设备中的 TIdTCPClient 连接到我的 PC Windows 10 上的 TIdTCPServer 时遇到了一个真正的问题。
我必须补充一点,我在 LAN 网络上使用 WIFI,而且所有设备都具有 WIFI 访问权限。
另外,我不得不提一下,我的 windows 10 防火墙 关闭,所以它不能以某种方式防火墙。 此外,我的 windows 10 平台上没有任何杀毒软件,甚至 MCAfee 也没有。
这是我尝试从 Android 连接到 PC 时遇到的错误:
socket error # 113 no route to host
注意:当我在同一台机器上同时使用TIdTCPClient 和TIdTCPServer 时,我可以连接。
连接模板:
这是我的问题:
1- 从 PC1 连接到 PC2 = "失败"。
2- 从 PC1 连接到 PC1 = "成功"。
3- 从 PC1 连接到 Android/IOS = "Failed"。
4- 从 Android/IOS 连接到 PC1 = "Failed"。
在失败我得到上面的错误。
XML 更新:
<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.embarcadero.watcher"
android:versionCode="1"
android:versionName="1.0.0"
android:installLocation="auto">
<!-- This is the platform API where NativeActivity was introduced. -->
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:glEsVersion="0x00020000" android:required="True"/>
<application android:persistent="False"
android:restoreAnyVersion="False"
android:label="watcher"
android:debuggable="True"
android:largeHeap="False"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme"
android:hardwareAccelerated="true">
<!-- Our activity is a subclass of the built-in NativeActivity framework class.
This will take care of integrating with our NDK code. -->
<activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
android:label="watcher"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:launchMode="singleTask">
<!-- Tell NativeActivity the name of our .so -->
<meta-data android:name="android.app.lib_name"
android:value="watcher" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.embarcadero.rtl.notifications.NotificationAlarm" />
</application>
</manifest>
<!-- END_INCLUDE(manifest) -->
【问题讨论】:
-
感谢您的评论,但是更改
AndroidManifest.xml是从应用程序目录,还是使用IDE更好?,更改后是否需要编译项目? -
使用 IDE。它位于 Android Target 的 Project Options 的 Uses Permissions 部分
-
即使我从项目选项中更改了
AndroidManifest.xml,仍然出现相同的错误,查看更新
标签: android delphi firemonkey c++builder indy