我的问题实际上与mono/linux socket denied?相同,但是似乎该问题没有得到正确回答,因此我仍然很困惑。

我有一台使用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

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

这是我用来创建套接字并开始监听的代码:
    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。

09-07 07:18