用 netty 创建的 udp 服务器获取 InetSocketAddress 为空

2019-09-03 14:40:17 +08:00
 ClancyH
 InetSocketAddress address = (InetSocketAddress) channelHandlerContext.channel().remoteAddress();

代码如上,debug 显示问题出在 NioDatagramChannel 这个通道中的 remoteAddress 为 null。 有人碰到过类似问题吗?

3040 次点击
所在节点    Java
3 条回复
fanqiang07
2019-09-03 15:15:02 +08:00
如果你用的是类似于 "server1:1234" 这种形式的 uri,需要在服务器的 hosts 文件里加上相应的映射
fanqiang07
2019-09-03 15:18:03 +08:00
简单点说就是找不到目标的真实地址,所以会显示 null
ClancyH
2019-09-04 09:16:12 +08:00
@fanqiang07 感觉是 context 里面的 channel 没有存储地址信息,我从 datagrampacket 的 sender 方法获取到地址信息了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX