使用动态 IP 的 Android/Java 客户端-服务器应用程序
因此,我想创建一个 Android 应用程序,通过 Wi-Fi 将数据(在本例中为坐标)从我的 Android 设备发送到我的 MacBook 上的 Java 应用程序。 我想我会使用 TCP 套接字来完成这项工作,我的 Android 设备将充当客户端,而我的 MacBook 作为服务器。 我的问题是,实际上硬编码 IP 地址并不是理想的技术,有什么办法解决这个问题吗?使用套接字是制作此类应用程序的最佳方法吗?
So i want to create an Android application that would send data (in this case coordinates) from my Android device to a Java application on my MacBook via Wi-Fi.
I figured i would use TCP Sockets for the job, and my Android device would act as client while my MacBook as server.
My problem is that in reality hardcoding IP addresses is not the ideal techique for that, is there any way around this? Is using Sockets the best way to make an application like that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没有进入最好的方法,而是使用 动态 DNS 服务来代替静态 ips。
Not getting into the best way to do it, but instead of static ips use a Dynamic Dns Service.
您可以使用动态 DNS。使用动态 DNS,客户端 (Macbook) 向 DNS 服务器注册其 IP 地址,然后通过正常的 DNS 请求将其提供给其他客户端 (Android)。
但是,我建议不要进行此设置(带有 DynDNS 的笔记本电脑上的服务器):
相反,我建议您使用虚拟专用服务器 (Linode) 或云解决方案。
或者,如果您不想设置/管理服务器,则可以使用现有的数据交换解决方案:电子邮件、twitter、xmpp 等。
You could use dynamic DNS. With dynamic DNS, client (Macbook) registers its IP address with DNS server, which than serves it to other clients (Android) via normal DNS requests.
However, I'd recommend against this setup (server on notebook with DynDNS):
Instead I'd suggest that you use a virtual private server (Linode) or a cloud solution.
Alternatively, if you don't want to setup/manage a server, than you could use an existing data exchange solution: email, twitter, xmpp, etc..