【发布时间】:2015-04-03 01:43:34
【问题描述】:
我正在编写一个小型 UDP 服务器,它可能会在同一端口接收不同的 UDP 协议消息,例如 STUN、RTP、RTCP、DTLS 数据包。
我首先应该能够区分每种协议消息以执行不同的逻辑。
我在哪里可以找到 java 的示例,更好的库可以帮助我解决这个问题。
【问题讨论】:
-
我的问题不是关于发送和接收 UDP 数据包的 java 示例,而是区分它们。
-
除非每个协议都可以清楚地从另一个协议中识别出来,比如说,它们都有一个标头,那么这将是有问题的。您可以编写代码进行猜测,但它可能并非一直有效。我会问你为什么要在同一个端口上支持多个协议的问题,因为如果你可以避免它,这并不是你真正会做的事情。你这样做是在“打破 UDP 网络规则”。
-
好吧,在我的情况下,STUN 和 RTP 必须接收到相同的端口才能处理端点之间的 NAT。所以我需要能够分别识别它们以对应响应这些数据包。
-
不确定你想要达到什么目的,但如果是 NAT 问题,最好在操作系统级别处理,你知道
标签: java udp rtp stun multiplexing