2

私は錬金術のウェブソケットを使用しており、Windowsで何かを動作させるのに十分な方法を見つけました。Linux(ubuntu)でモノを使用して錬金術を構築し、サーバーを実行しました。ソケットエラーになります。ポートは>1kです(正確にはポート8005)

Unhandled Exception: System.Net.Sockets.SocketException: Access denied
  at System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x00000] in <filename unknown>:0 
  at System.Net.Sockets.TcpListener.Start (Int32 backlog) [0x00000] in <filename unknown>:0 
  at System.Net.Sockets.TcpListener.Start () [0x00000] in <filename unknown>:0 
  at Alchemy.TcpServer.Listen (System.Object state) [0x00000] in <filename unknown>:0 

ファイル名から、デバッグ情報を使用してビルドするのを忘れたか、シンボルをインストールしなかったように見えますが、mono でビルドに成功しました。その使用.NET 4.0 mono 2.10

ソケットでアクセスが拒否されるのはなぜですか?

4

3 に答える 3

2

チェックアウトするいくつかのこと

netstat -a | grep 8005他の何かがポート 8005 を使用しているかどうかを確認する

su として実行して、パーミッションの問題かどうかを確認します

sudo mono YourProgram.exe

使用しているライブラリをよく見ていませんでしたが、ICMP または Raw Sockets を使用している場合は、root として実行する必要があります。

もう 1 つの確認事項は、使用している DNS 解決が一致するかどうかを確認することです。通常、サンドボックス化されたランタイムはこれについて文句を言うだけですが、奇妙なことが起こっているのを見たことがありますが、あなたは私たちに多くの情報を提供してくれませんでした.

setcapそれがルートの問題であり、別のプログラムがポート 8005 を使用しているわけではない場合は、ルートとして実行する必要がないようにモノ バイナリを使用することで回避できる可能性があります。

これをルートとして実行します。 setcap cap_net_raw=iep /path/to/mono

于 2012-04-21T00:02:55.910 に答える
0

Linux/Mono での Alchemy WebSocket 作成のためのアクセス拒否で回答されたとおり

Alchemy は 843 で Flash ポリシー ファイルをスローします。サーバーをインスタンス化するときに、flashsocketpolicy をオフにしてみてください。

于 2012-10-03T23:01:15.947 に答える