简单问题:Flash/ActionScript 是否支持 UDP 数据报套接字?
简单问题:Flash/ActionScript 是否支持 UDP 数据报套接字?
这个问题早已经被提出,答案现在已经改变为“是”。对于那些偶然发现这个问题的人:
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。
是的,有点像。
FMS和Player 10的下一个版本将引入一种新的协议,即RTMFP(Real Time Messaging Flow Protocol),这是一种基于Amicima的MFP协议的低延迟、基于UDP的协议。Amicima在2006年被Adobe收购。
需要注意的是,作为“基于UDP的协议”,它并不是原始的UDP实现。
在撰写本文时,答案是否定的。
BinarySocket和Xml Socket都是基于TCP/IP的。正如SpliFF所提到的,Flash 10正在添加UDP,主要用于Flash Media Server工具和RTMFP。Adobe Stratus是该协议的一个示例。http://labs.adobe.com/technologies/stratus/
然而,目前Adobe的UDP示例均为基于点对点的。UDP在点对点中具有优势,但在更大规模的多用户或DVE(分布式虚拟环境)中具有更多优势,因此希望未来能够重点关注它。
如果您想在游戏中使用UDP,Unity3D当前支持Web Player中的UDP。或者使用Java的jMonkeyEngine也支持它。还有即将推出的基于Web的Torque 3D可能也会支持它。
但是,现在的答案已经变成了肯定的;要了解如何实现这一点,请参见ericsoco's answer,了解如何使用DatagramSocket
来实现。