gpt4 book ai didi

c# - 简单的网络服务器 : The format of the specified network name is invalid

转载 作者:太空狗 更新时间:2023-10-29 20:41:53 25 4
gpt4 key购买 nike

我在编写一个简单的 Web 服务器时遇到问题。我需要能够通过本地主机和 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/");

如果我注释掉这一行,我可以通过本地主机连接。

有谁知道我可能做错了什么?


好的,我的 IP 地址正常工作,但现在我遇到了这一行的问题:

if (page == string.Empty)
page = page + "index.html";

出于某种原因,它没有在末尾添加 index.html。

最佳答案

对我有用的解决方案是在 applicationhost.config 文件中添加一个绑定(bind)。

This answer举例说明绑定(bind)信息的位置以及如何手动编辑它。

对于您的情况,以下绑定(bind)信息可能会解决您的问题:

<bindings>
<binding protocol="http" bindingInformation="*:69:localhost" />
<binding protocol="http" bindingInformation="*:69:201.0.0.10" />
</bindings>

关于c# - 简单的网络服务器 : The format of the specified network name is invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19095769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com