繁体   English   中英

在Linux / Mono中创建Alchemy WebSocket的访问被拒绝

[英]Access denied for Alchemy WebSocket creation in Linux/Mono

我的问题几乎与单声道/ linux套接字被拒绝相同 但似乎这个问题没有得到适当的回答,所以我仍然被卡住了。

我有一个使用Alchemy WebSockets编写的服务器。 我在Windows上运行良好但在将其移植到Linux后我无法使其工作。 每次尝试启动套接字服务器时,我都会收到以下错误:

System.Net.Sockets.SocketException: Access denied
  at System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x00051] in /build/src/mono-2.10.8/mcs/class/System/System.Net.Sockets/Socket.cs:1104
  at System.Net.Sockets.TcpListener.Start (Int32 backlog) [0x00022] in /build/src/mono-2.10.8/mcs/class/System/System.Net.Sockets/TcpListener.cs:268
  at System.Net.Sockets.TcpListener.Start () [0x00000] in /build/src/mono-2.10.8/mcs/class/System/System.Net.Sockets/TcpListener.cs:243
  at Alchemy.TcpServer.Listen (System.Object state) [0x00000] in <filename unknown>:0

我试图绑定到1024以上的端口(在这种情况下特别是12345),这不是问题。 我没有运行AppArmor或SELinux或类似的东西。 我的系统上没有使用该端口。 如果重要,我的用户是“网络”组的成员。 如果我用sudo运行它,我的程序将绑定到套接字,但这显然不是一个理想的情况。

这是我用来创建套接字并开始监听的代码:

    static public void Start(int port, string host)
    {
        _server = new WebSocketServer(port, IPAddress.Parse(host));
        _server.OnConnect = OnConnected;
        _server.OnDisconnect = OnDisconnect;
        _server.Start();
    }

“12345”作为“端口”传递,“192.168.0.11”(我的本地IP)作为“主机”传递。 我也试过IPAddress.Any无济于事。

Alchemy在843处抛出一个Flash策略文件 - 尝试在实例化服务器时关闭flashsocketpolicy。

这严格来说是权限问题

如果我用sudo运行它,我的程序将绑定到套接字,但这显然不是一个理想的情况。

在Stackoverflow上一篇文章中已经提出过这个问题。 单声道/ linux套接字否认?

我会尝试将“用户”添加到sudo的组中,以便将其作为快速解决方案进行补救。 如果它使用ICMP或原始套接字,则必须以root FYI运行。 仔细检查Alchemy是不是在使用它,如果你运行它超出用户权限就有点运气了。

我试着将此作为评论发布,但它不会让我,这不是一个真正的答案。

仅供你们选民参选。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM