
背景是这样: 主机与客户机采用 udp 连接, 客户机的 ip 随时可能变更, 所以主机保存了客户机发送过来的 mac 地址作为客户机标识.
当主机下发报文时, 需要先获取客户机实时的 ip 才能发送过去.
那么问题就来啦: 我发现云服务器 arp -a的输出是
_gateway (192.168.0.1) at fa:16:3e:54:ba:e2 [ether] on eth0 ? (192.168.0.253) at fa:16:3e:9f:a3:f3 [ether] on eth0 ? (192.168.0.254) at fa:16:3e:36:9b:65 [ether] on eth0 ? (192.168.0.66) at fa:16:3e:56:e4:3d [ether] on eth0 ? (192.168.0.21) at <incomplete> on eth0 似乎根本就不会记录外网 ip???
有没巨佬能科普一下, 给个办法或者思路, 我在网络通信方面着实菜鸡, 提前感谢!
结贴, 谢谢各位
我就是个瓜皮
1 xenme 2019 年 1 月 9 日 难道不是 ip+port 来通信的? 客户端哪个 IP 和端口发过来的,直接哪个地址和端口回就好了么。 |
2 singerll 2019 年 1 月 9 日 via Android 客户机是公网 ip ? |
3 mhycy 2019 年 1 月 9 日 MAC 地址是二层交换所用,上层通讯只需要关心 IP 地址, UDP 经过 NAT 以后端口有效时间不定,即便加了心跳也不一定长期有效 务必注意开发时候的断流处理 |