mono-io-layer-error (10013) 的原因
Reason of mono-io-layer-error (10013)
我正在使用 XAMARIN 为我的 android 应用程序创建一个聊天应用程序,但是当我要启动 tcp 侦听器时,我遇到了 mono-io-layer-error (10013)。已选择 Internet 选项以获得权限。
我在 main Activity 的 OnCreate() 方法中调用它。
我的代码是这样的:
private void CreateListener()
{
HttpListener listener = null;
HttpListenerContext context = null;
HttpListenerRequest request = null;
HttpListenerResponse response = null;
string PortNumber = "8080";
string requestUrl;
Boolean listen = false;
try
{
if (listener == null)
{
listener = new HttpListener();
listener.Prefixes.Add("http://192.168.20.93" + PortNumber + "/");
listener.Start();
listen = true;
while (listen)
{
try
{
context = listener.GetContext();
}
catch (Exception e)
{
listen = false;
}
if (listen)
{
request = context.Request;
requestUrl = request.Url.ToString();
// Process request and/or request Url
}
}
}
}
catch (Exception ex)
{
}
}
问题是你添加到 Prefixes
的字符串是错误的。
一个URI前缀字符串由方案(http或https)、主机、可选端口和可选路径组成,例如:http://www.contoso.com:8080/customerData/
。
尝试将代码 listener.Prefixes.Add("http://192.168.20.93" + PortNumber + "/");
更改为 listener.Prefixes.Add("http://192.168.20.93:" + PortNumber + "/");
。
我正在使用 XAMARIN 为我的 android 应用程序创建一个聊天应用程序,但是当我要启动 tcp 侦听器时,我遇到了 mono-io-layer-error (10013)。已选择 Internet 选项以获得权限。
我在 main Activity 的 OnCreate() 方法中调用它。
我的代码是这样的:
private void CreateListener()
{
HttpListener listener = null;
HttpListenerContext context = null;
HttpListenerRequest request = null;
HttpListenerResponse response = null;
string PortNumber = "8080";
string requestUrl;
Boolean listen = false;
try
{
if (listener == null)
{
listener = new HttpListener();
listener.Prefixes.Add("http://192.168.20.93" + PortNumber + "/");
listener.Start();
listen = true;
while (listen)
{
try
{
context = listener.GetContext();
}
catch (Exception e)
{
listen = false;
}
if (listen)
{
request = context.Request;
requestUrl = request.Url.ToString();
// Process request and/or request Url
}
}
}
}
catch (Exception ex)
{
}
}
问题是你添加到 Prefixes
的字符串是错误的。
一个URI前缀字符串由方案(http或https)、主机、可选端口和可选路径组成,例如:http://www.contoso.com:8080/customerData/
。
尝试将代码 listener.Prefixes.Add("http://192.168.20.93" + PortNumber + "/");
更改为 listener.Prefixes.Add("http://192.168.20.93:" + PortNumber + "/");
。