无法远程登录到作为服务器运行的Xamarin Android应用程序
我创建了一个Xamarin Forms应用程序,该应用程序实现了在此处找到的用于设置端点的代码: 我在无法远程登录到作为服务器运行的Xamarin Android应用程序,android,.net,sockets,xamarin,tcpserver,Android,.net,Sockets,Xamarin,Tcpserver,我创建了一个Xamarin Forms应用程序,该应用程序实现了在此处找到的用于设置端点的代码: 我在AndroidManifest.xml中添加了INTERNET权限,如下所示: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionNam
AndroidManifest.xml
中添加了INTERNET权限,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.Server">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="27" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:label="Server.Android"></application>
</manifest>
using System;
using System.Threading;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace Server.Droid
{
[Activity(Label = "Server", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
new Thread(new ThreadStart(delegate {
AsynchronousSocketListener.StartListening();
})).Start();
}
}
}
我已经通过了调试器,我看到端点已经创建。我现在正试图通过IP地址远程登录到应用程序,我看到StartListening中的这行代码中分配了IP地址:
IPAddress ipAddress = ipHostInfo.AddressList[0];
C:\> telnet 10.x.x.x 11000
我总是收到错误信息
无法在端口11000上打开与主机的连接:连接失败
我试过打开和关闭Windows防火墙,但都没有用。我已经通过在模拟器上运行的Netstat for Android验证了我的应用程序正在端口11000上侦听。如果我不运行异步服务器,我将遇到与您相同的问题,因此我认为您可能不会打开服务器侦听,请打开服务器侦听,然后重试。@CherryBu如前所述,我可以看到应用程序使用Netstat for Android在端口11000上监听。我不打开服务器听是什么意思?我使用以下代码行来实现这一点:new Thread(new ThreadStart(委托{AsynchronousSocketListener.StartListening();})).Start();从这个线程:,SushinHangover表示您的ip不正确,因此请确认您的决定性ip地址,您可以从本文中获取设备ip地址:如果我不运行异步服务器,我将遇到与您相同的问题,因此我认为您可能不会打开服务器侦听,请打开服务器侦听,然后重试。@CherryBu如前所述,我可以看到应用程序使用Netstat for Android在端口11000上监听。我不打开服务器听是什么意思?我使用以下代码行来实现这一点:new Thread(new ThreadStart(委托{AsynchronousSocketListener.StartListening();})).Start();通过此线程:,您的ip地址不正确,因此请确认您的决定性ip地址,您可以从本文中获取您的设备ip地址: