无法使用IP连接到WebSocketServer(但localhost没问题)

时间:2017-02-04 04:11:49

标签: c# asp.net .net websocket

这非常简单。我有一个WebSocketServer项目,如果uri是http://localhost:8081/,但是如果我使用本地IP而不是localhost http://10.0.0.201:8081/,它会很好用,但它拒绝回复该IP上的请求。我确定它是一个权限问题或无法访问端口问题,但坦率地说,我没有收到任何错误。它只是没有回应。任何人都可以对此有所了解吗?这一切都在c#中。

这又是一个服务器。它应该在10.0.0.201上听到(当然,还有localhost)。 Localhost有效,但IP不是来自任何客户端。

我故意不发布代码(尽管我可以,如果有必要),因为这是一个支持多个并发客户端的多线程应用程序。它通过localhost完美运行。我只是将“localhost”改为机器的IP。失败感觉就像绑定或权限问题。

3 个答案:

答案 0 :(得分:0)

这可能是由于您的网络服务器(例如IIS)中的Http Binding,绑定可能明确要求localhost,如果URI没有localhost,那么它将拒绝此连接。

尝试将绑定更改为空主机名,并且应允许URI。

答案 1 :(得分:0)

这是一个建议,而不是答案。您是否尝试过从其他计算机上访问WebServer?即使它只是一个静态测试页面? 它可能是一个perms问题,但这至少会告诉你本地网络上的任何一台机器是否可以使用IP /端口配置到达它。

答案 2 :(得分:0)

尝试绑定到*

如果使用HttpListener,请尝试以下操作:

httpListener = new HttpListener();
httpListener.Prefixes.Add("http://*/");

而不是

httpListener.Prefixes.Add("http://localhost/");
httpListener.Prefixes.Add("http://10.0.0.201/");

绑定到localhost不会绑定到所有其他地方,例如,绑定到特定IP地址将无法与localhost或IPv6一起使用。