我一整天都在努力解决这个问题,我希望有人可以帮助我.
我的问题很简单:我希望通过互联网将数据(主要是简单的命令)从一台PC传输到另一台PC.
当两台计算机连接到我的家用路由器时,我已经能够使用Java中的套接字来实现这一点.然后,我使用两个不同的移动电话将两台计算机连接到互联网,并尝试再次传输数据.我使用移动电话,因为这提供了到互联网的直接路由,如果我使用我的路由器,我必须设置端口转发,至少,这是我理解它.
我认为问题在于我设置客户端套接字的方法.我用了:
Socket kkSocket = new Socket(ipAddress, 3333);
Run Code Online (Sandbox Code Playgroud)
其中ipAddress是运行服务器的计算机的IP地址.我通过右键单击连接,状态,支持来获取IP地址.这是正确使用的IP地址还是在哪里可以获取服务器的地址?此外,是否可以为我的计算机获取一个固定的名称,而不是输入IP地址,因为每次使用我的手机连接到互联网时这都会改变?
或者,是否有更好的方法来解决我的问题,如使用http,如果是这样,我在哪里可以找到有关此问题的更多信息?
编辑: 是否有可能让服务器程序在互联网上的某个服务器上运行.我的原始服务器将是一个向该服务器发送信息的客户端.然后,此服务器将此信息传递给我的原始客户端,反之亦然.这样,我的计算机的IP地址无关紧要,因为我只需要知道在网络上某处托管的服务器的地址.这似乎是一个更好的解决方案吗?我从哪里开始实施这样的解决方案?
谢谢!
Mal*_*lio 10
当您连接到服务于StackOverflow的服务器时,您是否输入了IP地址?它是64.34.119.12,如果那慢跑你的记忆.
你可能没有.你可能输入了"stackoverflow.com".有一个巨大的,复杂的,聪明的,在某些方面,实施不当的系统称为DNS,它将合理的和人类可读的名称转换为IP地址.
但是,DNS存在的一个问题是,您需要一个"静态IP",这听起来就是这样的:一个不会改变的IP地址,这正是您没有的.
所以,你可以做什么?
多播是一个有趣的解决方案,它可能适合您.这个想法是,当你的服务器启动时,它会向网络宣布:"我在这里,我正在提供X服务器,这是我的IP地址,请跟我说说." 问题是,多人演员不会离开你的起居室.显然,如果每个多播都传播到互联网上的每台计算机上,整个事情就会崩溃,所以你的路由器会忽略而不是路由多播数据包.这可能是也可能不是你的交易破坏者. 编辑重新阅读您的问题,我认为这对您来说是一个交易破坏者.我会选择#5,但请注意可能存在路由问题(防止服务器知道其他计算机可以找到的地址的地址转换)或防火墙问题(也就是说,您的ISP可能会阻止您的服务器从接收传入的数据包,即使地址是正确的).
| 归档时间: |
|
| 查看次数: |
23487 次 |
| 最近记录: |