System.Net.HTTPListenerを使用して単純なHTTPサーバーを作成しようとしましたが、ネットワーク内の他のコンピュータからの接続を受け取りません。例コード:HTTPListenerがネットワーク上で動作しません
class HTTPServer
{
private HttpListener listener;
public HTTPServer() { }
public bool Start()
{
listener = new HttpListener();
listener.Prefixes.Add("http://+:80/");
listener.Start();
listener.BeginGetContext(new AsyncCallback(ListenerCallback), listener);
return true;
}
private static void ListenerCallback(IAsyncResult result)
{
HttpListener listener = (HttpListener)result.AsyncState;
listener.BeginGetContext(new AsyncCallback(ListenerCallback), listener);
Console.WriteLine("New request.");
HttpListenerContext context = listener.EndGetContext(result);
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
byte[] page = Encoding.UTF8.GetBytes("Test");
response.ContentLength64 = page.Length;
Stream output = response.OutputStream;
output.Write(page, 0, page.Length);
output.Close();
}
}
class Program
{
static void Main(string[] args)
{
HTTPServer test = new HTTPServer();
test.Start();
while (true) ;
}
}
このコードに問題がありますか、別の問題がありますか?
私は管理者権限でアプリケーションを実行しようとしましたが、別のコンピュータのコンピュータのIPアドレス(192.168.1.100)を参照すると、その要求は受信されません。アプリケーションが実行されている場所(「localhost」、「127.0.0.1」および「192.168.1.100」を使用)と同じコンピュータから要求が送信された場合、サーバーは正常に動作します。ピンポングがうまくいきます。私もnginxを試しましたが、これはネットワーク上で完全に動作します。
HTTPListenerを軽量サーバーとして使用して、一部の動的initパラメータclientaccesspolicy.xmlと単純なモバイルHTMLページを含むSilverlight XAPファイルを含むWebページを配信しています。
あなたはそうです。それは私の馬鹿げたものだった。私は、ファイアウォールが問題ではないという管理者特権でアプリケーションが実行されていることを前提としていました。そして、奇妙なことに、Windowsファイアウォールからプログラムをブロックするか許可するかは決して受け取りませんでした。有難う御座います。 – user1273708
これは最短の答えの賞やバッジにも勝つはずですが、それでも目標に挑戦してください:) – V4Vendetta
ハ!私は長さにそれを得るために非改行スペースでそれを埋めなければならなかった! – spender