我需要制作一个Android应用程序,它可以向嵌入式RS-232系统(连接到路由器)发送TCP查询。
不幸的是,没有给出IP地址,因为每个嵌入式系统都有不同的IP地址。
要了解IP地址,android设备(平板电脑/智能手机)必须连接到本地无线网络并获取嵌入式系统的地址。本地网络还有一个公共IP地址,使嵌入式系统能够与外部世界通信。
我的任务是向嵌入式系统发送查询并从中获得回复。输入和输出的协议都是RS-232。
请给我一个从哪里开始的想法。非常感谢。
如果没有零配置选项,则扫描网络以查找打开的端口。
如果你知道设备使用的mac地址范围,你应该能够使用ARP过滤掉它们。
如果您可以控制两端,则可以使用多播并保存发现步骤。或者,您可以使用dns-sd,但嵌入式系统也应该意识到这一点。最后,如果以上选项都不可能,你应该像其他答案中提到的那样扫描网络,但如果使用DHCP,你永远不会知道你获得的地址是否仍然有效。
如果你在同一个网络上谈论,你可以使用UDP广播,该广播由包含远程ip的设备接收,然后用它自己的tcp/ip地址向android手机发送响应。