7

私が書いている単純な 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 を追加していません。

4

2 に答える 2