Vb.net 基于网站IP的TCP连接

Vb.net 基于网站IP的TCP连接,vb.net,windows,tcp,Vb.net,Windows,Tcp,有没有办法设置TCPListener使用网站ip地址而不是计算机ip地址。例如,不要使用127.0.0.1,而是使用74.125.233.95(谷歌的Ip地址,这里就是一个例子)。这是我试过的代码: Dim hostname As IPHostEntry = Dns.GetHostByName(TextBox1.Text) Dim ip As IPAddress() = hostname.AddressList Dim port As Integer

有没有办法设置TCPListener使用网站ip地址而不是计算机ip地址。例如,不要使用127.0.0.1,而是使用74.125.233.95(谷歌的Ip地址,这里就是一个例子)。这是我试过的代码:

Dim hostname As IPHostEntry = Dns.GetHostByName(TextBox1.Text)
        Dim ip As IPAddress() = hostname.AddressList
        Dim port As Integer 
        Dim localAddr As IPAddress 
        Dim server As TcpListener 
        Try

            port = 8080
            server = New TcpListener(ip(0), port)

            server.Start()
            RichTextBox1.AppendText("Listening on : " & ip(0).ToString & vbNewLine)
        Catch ex As Exception
            RichTextBox1.AppendText(ip(0).ToString & " : " & ex.Message & vbNewLine)
        End Try
上述代码输出:

74.125.233.95 : The requested address is not valid in its context
有没有办法用TCPListener或其他方法来做到这一点

编辑:


看,问题是,我想创建一个可以在世界任何地方通过互联网控制的应用程序。我想让它尽可能简单,这样用户在使用路由器时就不必定义端口转发,而且防火墙也不会阻止它。因此,对我来说,最好的方法是应用程序将通过我的网站域名侦听命令。

您的代码不负责定义IP地址,它只绑定到操作系统在计算机网络接口上配置的IP地址

当您打开一个端口并使用TcpListener进行侦听时,您将绑定到一个具有IP地址的现有以太网接口(如果您使用0.0.0.0/INADDR\u ANY,则绑定到所有这些接口)

编辑:OP澄清,他希望接收来自和/或远程控制他分发的应用程序的请求,而无需用户配置任何特殊的东西,如端口转发

最好的方法是使用“推”。让你的所有应用程序都打电话回家

您可以在不启动从中央服务器到应用程序的TCP连接的情况下执行此操作,而是让应用程序连接到公共地址上的中央服务器,然后服务器可以通过推送命令/请求来控制应用程序。关键是,这可以从代理和NAT防火墙后面工作,而无需在用户网络上进行端口转发。您的服务器需要在公共IP地址上运行。哪一端启动连接并不重要,一旦连接启动,它就是双向的

我想创建一个应用程序,可以从世界任何地方通过互联网控制。我想让它尽可能简单,这样用户在使用路由器时就不必定义端口转发,而且防火墙也不会阻止它。因此,对我来说,最好的方法是应用程序将通过我的网站域名监听命令

不,那根本不是最好的办法。最好的方法是让您的应用程序和希望控制它的人连接到您提供和管理的中央服务器。中央服务器将转发请求


您尝试的方法毫无意义,也不会起作用。

问题是,我想创建一个可以在世界任何地方通过互联网控制的应用程序。我想让它尽可能简单,这样用户在使用路由器时就不必定义端口转发,而且防火墙也不会阻止它。所以对我来说,最好的方法是应用程序通过我的网站域名来监听命令。哦,当然。你的问题有误导性,听起来好像你想绑定到一个已经存在的站点的另一个IP地址。让我编辑一下我的答案。你有没有我可以用的例子?请?上面的代码应该可以在中央服务器上运行。然后,您需要编写一个连接到它的客户端应用程序。问题似乎是您没有面向公众的服务器来运行侦听器。你呢?不。由于该服务需要全天候在线,我无法在中央服务器上运行它。我使用这个名为LiveZilla的应用程序,它实际上在你的网站上安装了一个服务器,然后所有客户端都使用你定义的域。但是整个服务器都存储在你的网站上,但我甚至不知道从哪里开始你想完成什么?是否收到谷歌的请求?@usr:No。仅以谷歌的IP地址为例。代码使用的真正的一个属于我自己的网站。再说一遍,你想做什么?`@usr:“问题是,我想创建一个可以在世界任何地方通过互联网控制的应用程序。我想让它尽可能简单,这样用户在使用路由器时就不必定义端口转发,而且防火墙也不会阻止它。因此,对我来说,最好的方法是该应用程序将通过我的网站域名监听命令。“最佳做法是编辑问题以添加其他信息。简言之,你不能绑定到任意IP并接收到某些内容,因为“互联网”“不知道您这样做了,无法向您发送IP数据包。即使操作系统允许你绑定到任何地址,你也不会收到任何东西。实际上,我想使用我的网站作为中央服务器。这就是我想做的,但我似乎不知道怎么做。我甚至花了无数个小时在谷歌上,试图找到一些东西out@Adriaan为什么不问一个具体的问题,你在让你的网站这么做时遇到了什么问题。你的网站还能用吗?如果不是,你的问题是关于制作一个有效的网站,而不是制作一个应用程序。我的网站已经启动并运行了。我只是不知道如何使用它作为一个中央服务器。我在考虑WebRequest和WebResponse(在VB.Net中),但是,我非常担心安全性。像TeamViewer一样工作的东西也可以工作。主应用程序具有唯一ID,您可以使用该ID从客户端应用程序连接到主应用程序。同样,无需配置端口转发和防火墙,我认为您需要的是Web服务。那么任何有权使用它的人都可以。@OneFineDay:唯一的问题是,我的主机是基于linux的。我尝试过一个Web服务,但根本不起作用