gpt4 book ai didi

java - NAT 后面的客户端的 Spring Integration UDP 服务器

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:56:53 26 4
gpt4 key购买 nike

我尝试使用 Spring Integration 实现 UDP 服务器,就像 here 中描述的那样,但是当客户端在 NAT 后面运行时,它们将永远不会收到来自服务器的响应。这是因为服务器应该从与 UDP 适配器端口相同的端口发送响应数据报(通过 NAT 检查 UDP 解释 here )。

如何使用 Spring Integration 与 NAT 后面的客户端实现正确的 UDP 通信?

最佳答案

正如在这些线程中所讨论的那样;当前没有任何 UDP 网关,只有 channel 适配器。网关用于双向集成。

多年来对 UDP 网关没有任何需求。

我们做到了 make some changes方便用户回复传入的消息(通过将发送端口添加为标题)。

这将允许您构建一个 DatagramPacket (可能使用 SI DatagramPacketMessageMapper )并使用您自己的代码将其发送到原始系统。

如果您希望我们重新考虑提供 UDP 网关,请在 JIRA Issue 发表评论.更好的是,考虑 contributing .

编辑

对于异步发送,您不需要网关;购买您需要调整内置在出站适配器中的映射器和消息处理程序。

更改 DatagramPacketMessageMapper here设置 socketAddress使用邮件标题;并向 UnicastSendingMessageHandler 添加一个选项这样它就不会无条件地设置 destinationAddress here .

您可以通过继承处理程序并覆盖 send() 来实现此目的方法。

然后您可以将自定义的消息处理程序连接到 <service-activator/> 中使用 ref属性。

关于java - NAT 后面的客户端的 Spring Integration UDP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33567041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com