如何打开可从C#Windows窗体中的所有设备访问的本地主机服务器

问题描述 投票:0回答:1

我正在构建一个C#(Windows窗体)应用程序,它应该打开网络上的本地服务器。我已经搜索过并彻底搜索过,但似乎没有人接触到我所遇到的同样问题。

我在下面发布的代码确实打开了给定端口中的本地主机(当通过VS或作为普通版本运行时),但问题是,它只能通过我的笔记本电脑访问。如果我通过我的手机或任何其他笔记本电脑访问IP地址和端口,它甚至找不到服务器。经过几次尝试和头脑风暴。在我看来,它本身并没有真正打开网络上的服务器。它只是创建了某种虚拟本地主机,可以通过仅运行代码的机器访问。

这是我的代码:

private HttpListener Listener = null;

//CHECK IF HTTP IS SUPPORTED
try
{
    Listener = new HttpListener();
    Listener.Prefixes.Add("http://localhost:3000/");
    Listener.Start();
    Listener.BeginGetContext(GetContextCallback, null);
}
catch {} //SUPPRESS THE EXCEPTION/ERROR

private void GetContextCallback(IAsyncResult ar)
    {
        // Get the context
        var context = Listener.EndGetContext(ar);

        // listen for the next request
        Listener.BeginGetContext(GetContextCallback, null);

        var responseString = string.Format("Hello, this is a template text");

        byte[] buffer = Encoding.UTF8.GetBytes(responseString);

        // and send it
        var response = context.Response;
        response.ContentType = "text/html";
        response.ContentLength64 = buffer.Length;
        response.StatusCode = 200;
        response.OutputStream.Write(buffer, 0, buffer.Length);
        response.OutputStream.Close();
    }

我对这个概念或C#本身并不熟悉。我已经构建了几个与Node.js相同的应用程序,并在C#中构建了一些应用程序。但这是我第一次尝试在C#中编写这样的应用程序。我错过了什么?

c# winforms networking localhost
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.