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 + "/");