5

私はこれまでにこれを持っています...

public static HttpListener listener = new HttpListener();
public static string startUpPath = Application.StartupPath;
public  WebServer()
{
    listener.Start();

    listener.Prefixes.Add("http://(here I want my public ip)/");
    Thread t = new Thread(new ThreadStart(clientListener));
    t.Start();
}

しかし、クラスを初期化すると、"The specified Network format is not valid"

私のビジュアルスタジオの言語はスペイン語であるため、翻訳は完璧ではないかもしれません. 私のIPは95.^^.^^.^^のように見えますが、ローカルIPを使用すると機能するため、それが問題になる可能性があると思います。

//編集済み

正確な例外は次のとおりです。「El formato del nombre de red especado no es válido」これは"The specified network name is not valid". 、プレフィックスを追加し "http:// + :80/" ても引き続き実行されますが、パブリック IP からアクセスするにはどうすればよいですか?

4

2 に答える 2

6

これを設定するときは、内部 IP を使用する必要があります。これは、リッスンしている実際の IP であるためです。外部 IP からトラフィックを取得するには、そのトラフィックをルーターから、内部 IP でリッスンしているコンピューターに転送する必要があります。

セットアップする 1 つの方法は、ポート フォワーディングを使用することです。ルーターから、ポート 80 に着信するすべてのトラフィックをコンピューターに転送する必要があります。

詳細: http://en.wikipedia.org/wiki/Port_forwarding

于 2013-07-23T19:47:46.247 に答える
1

Jamie が言ったように、HTTPListener は、アプリケーションが実行されているネットワーク カードの IP アドレスにバインドする必要があります。NIC が実際にパブリック IP で構成されている (ルーターを経由しないなど) 場合を除き、プライベート アドレスが使用されます。

これを確認する簡単な方法は、IPCONFIG を実行して、リストされている IP アドレスを確認することです。

于 2013-08-03T17:33:25.350 に答える