首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpListener无法连接到安卓设备(可能还有其他远程设备)

HttpListener无法连接到安卓设备(可能还有其他远程设备)
EN

Stack Overflow用户
提问于 2016-02-10 15:59:04
回答 1查看 671关注 0票数 0

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

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

示例代码(我监听端口1337上的所有连接,而不是所有找到的I)

代码语言:javascript
复制
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();

好吧,我从任何浏览器都能得到它应该得到的响应(在正常情况下,我会使用它,我的JS应用程序会得到JSON对象),但从wifi网络中的任何设备上,我都会超时,甚至无法到达上下文。

另一方面,TcpListener工作正常。为什么?我或多或少知道不同之处,在TcpListener中我可以得到一个原始的连接(就像从Putty得到的):

代码语言:javascript
复制
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");

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

EN

回答 1

Stack Overflow用户

发布于 2016-02-10 17:40:27

好了,结案了。在用尽所有可能的选项后,嗅探数据包显示发送数据包在转换过程中丢失,并且永远不会到达启动服务器的计算机。我推动IT,他们拒绝了一切,但在面对确凿的证据后,他们不得不让步,承认有人让这个特定的子网以一种将每个客户端彼此分开的方式工作。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35309648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档