17

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

4

3 回答 3

18

这个问题很久以前就被问过了,后来答案变成了是。对于其他偶然发现这个问题的人:

DatagramSocket类启用 UDP 通信。例如:

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

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

于 2012-02-28T00:11:20.490 回答
5

是的。。

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

请注意,作为“基于 UDP 的协议”,它不是原始 UDP 实现。

于 2009-05-25T16:02:54.277 回答
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 web based 即将推出也可能支持它。

然而,答案已经变成了肯定的;要了解这现在是如何实现的,请参阅 eri​​csoco 的回答,了解如何使用DatagramSocket来实现这一点。

于 2009-06-11T23:46:25.150 回答