私が書いている単純な Web サーバーに問題があります。localhost と IP を介してサーバーに接続できる必要があります。しかし、IP 経由での接続に問題があります。これが私のコードです:
private void start_button_Click(object sender, EventArgs e)
{
start_button.Text = "Listening...";
HttpListener server = new HttpListener();
server.Prefixes.Add("http://201.0.0.10:69/");
server.Prefixes.Add("http://localhost:69/");
server.Start();
while (true)
{
HttpListenerContext context = server.GetContext();
HttpListenerResponse response = context.Response;
string page = Directory.GetCurrentDirectory() +
context.Request.Url.LocalPath;
if (page == string.Empty)
page = page + "index.html";
TextReader tr = new StreamReader(page);
string msg = tr.ReadToEnd();
byte[] buffer = Encoding.UTF8.GetBytes(msg);
response.ContentLength64 = buffer.Length;
Stream st = response.OutputStream;
st.Write(buffer, 0, buffer.Length);
context.Response.Close();
}
}
次のエラーが表示され続けます: 指定されたネットワーク名の形式が無効です。
私の問題はこのビットにあることを知っています:
server.Prefixes.Add("http://201.0.0.10:69/");
この行をコメントアウトすると、localhost 経由で接続できます。
私が間違っている可能性があることを誰かが知っていますか?
さて、私はIPアドレスが機能するようになりましたが、今、次の行に問題があります:
if (page == string.Empty)
page = page + "index.html";
何らかの理由で、最後に index.html を追加していません。