是否可以在Flash/ActionScript中使用UDP?

the*_*ude 15 flash networking udp

快速提问:是否有可能在Flash/ActionScript中执行UDP数据报套接字?

eri*_*oco 17

很久以前就提出了这个问题,答案后来改为是.对于偶然发现这个问题的其他人:

DatagramSocket的类允许UDP通信.例如:

var datagramSocket:DatagramSocket = new DatagramSocket();
datagramSocket.bind(3333, "127.0.0.1");
datagramSocket.addEventListener(DatagramSocketDataEvent.DATA, onUDPReceived);
datagramSocket.receive();
Run Code Online (Sandbox Code Playgroud)

注意:DatagramSocket仅适用于桌面AIR,不适用于设备或Flash Player.


Spl*_*iFF 5

是的......

下一版本的FMS和Player 10将引入一种新协议RTMFP,它代表实时消息流协议.这是一种低延迟,基于UDP的协议,基于Amicima的MFP协议.Amicima于2006年被Adobe收购.

请注意,作为"基于UDP的协议",它不是原始的UDP实现.


Rya*_*sen 5

在撰写本文时,答案是否定的。

BinarySocket 和 Xml Socket 都是基于 TCP/IP 的。正如 SpliFF 提到的,UDP 被添加到 Flash 10 中,主要用于 Flash Media Server 工具和 RTMFP。到目前为止,Adobe Stratus 是该协议的一个示例。 http://labs.adobe.com/technologies/stratus/

然而,目前来自 Adob​​e 的 UDP 样本都是基于点对点的。UDP 在 P2P 中具有优势,但在更大规模的多用户或 DVE(分布式虚拟环境)中更是如此,因此希望它成为未来的重点。

如果你想在游戏中使用 UDP Unity3D 目前在网络播放器中支持 UDP。或者使用 Java 的 jMonkeyEngine 支持它。此外,即将推出的基于网络的 Torque 3D 也可能支持它。

然而,此后答案变成了肯定的;要了解现在如何实现这一点,请参阅 ericsoco关于如何DatagramSocket实现这一目标的答案