C# HttpListener不';无法从Android设备(可能还有其他远程设备)获得连接

C# HttpListener不';无法从Android设备(可能还有其他远程设备)获得连接,c#,android,network-programming,windows-phone-8.1,httplistener,C#,Android,Network Programming,Windows Phone 8.1,Httplistener,再一次,我需要你无价的帮助 我已经使用HttpListener类设置了项目,以绑定和侦听所有找到的IP和端口(在本例中)1337。 现在,本地连接(从我自己的电脑在浏览器的地址栏中输入IP:Port)工作正常,但任何来自远程设备的连接,即使是在同一个wifi网络中,也不会击中侦听器 示例代码(不是所有找到的IP,而是侦听端口1337处的所有连接) 嗯,从任何浏览器我都会得到应有的响应(在正常情况下,我会使用它为我的JS应用程序获取JSON对象),但从wifi网络中的任何设备,我都会超时,甚至无法

再一次,我需要你无价的帮助

我已经使用HttpListener类设置了项目,以绑定和侦听所有找到的IP和端口(在本例中)1337。 现在,本地连接(从我自己的电脑在浏览器的地址栏中输入IP:Port)工作正常,但任何来自远程设备的连接,即使是在同一个wifi网络中,也不会击中侦听器

示例代码(不是所有找到的IP,而是侦听端口1337处的所有连接)

嗯,从任何浏览器我都会得到应有的响应(在正常情况下,我会使用它为我的JS应用程序获取JSON对象),但从wifi网络中的任何设备,我都会超时,甚至无法访问上下文

另一方面,TcpListener工作正常。为什么?我或多或少地知道两者之间的区别,在TcpListener中,我可以得到一个原始连接(如Putty):

TcpListener TcpListener=新的TcpListener(终点);
tcplistener.Start();
TcpClient TcpClient=tcplistener.AcceptTcpClient();
int dataAvailable=tcpclient.Available;
Console.WriteLine(“接受连接”);
使用(StreamWriter sw=newstreamwriter(tcpclient.GetStream()))
{
sw.WriteLine(“你好”);
}
Console.WriteLine(“书面回复”);
tcpclient.Close();
Console.WriteLine(“等待下一个连接”);

是否可以以某种方式使用HttpListener或将连接路由到它?我真的需要通过html页面从每个设备连接到我的应用程序的可能性。谢谢你的建议。添加了标签#windows-phone-8.1,因为尝试从该设备连接到HttpListener,但没有任何积极效果。

好,案例关闭。在用尽了所有可能的选择后,嗅探数据包发现发送数据包在翻译过程中丢失,并且永远无法到达启动服务器的计算机。我推动了它,他们拒绝了一切,但在面对确凿的证据后,他们不得不让步,承认有人以一种将每个客户彼此分离的方式使这个特定的子网络工作


因此,当我手动打开一个套接字时,我能够连接(有时无法连接,但我认为这只是我的错误和混乱的实现),但在有机会到达我的网卡之前,所有其他的通信都被切断了。

不清楚服务器在哪里运行?它在你的电脑上,在安卓设备上,在模拟安卓上吗?你在防火墙上打开80端口了吗?如果没有,它可以解释,为什么你可以通过浏览器从机器本身访问,但不能从其他设备访问…@Übercoder:我使用的每个端口都在打开。更多-使用像Zervit这样的可移植HTTP服务器可以很好地用于服务目的。当然,在每个端口上我都会打开它。这是一个相当愚蠢的问题:但这个错误不可能是因为这样一个事实,即您收听的是
http://+:80/
,而不是
http://*:80
,对吗?
HttpListener httplistener = new HttpListener();
httplistener.Prefixes.Add("http://+:80/");
httplistener.Start();
HttpListenerContext ctx = httplistener.GetContext();
Console.WriteLine("got context");
ctx.Response.OutputStream.Write(Encoding.ASCII.GetBytes("hello"), 0, 5);
Console.WriteLine("response written");
ctx.Response.Close();
Console.WriteLine("response closed");
Console.ReadKey();
TcpListener tcplistener = new TcpListener(endpoint);
tcplistener.Start();
TcpClient tcpclient = tcplistener.AcceptTcpClient();
int dataAvailable = tcpclient.Available;
Console.WriteLine("connection accepted");
using(StreamWriter sw = new StreamWriter(tcpclient.GetStream()))
{
    sw.WriteLine("<html><body>hello</body></html>");
}
Console.WriteLine("response written");

tcpclient.Close();
Console.WriteLine("waiting for next connection");