Quick question: is there possibility to do UDP datagram sockets in Flash/ActionScript?
问题:
回答1:
At the time of writing, the answer was no.
Both BinarySocket and Xml Socket is TCP/IP based. As SpliFF mentions UDP is being added in Flash 10 mainly for Flash Media Server tools and for RTMFP. Adobe Stratus is an example of the protocol so far. http://labs.adobe.com/technologies/stratus/
However current UDP samples from Adobe are all Peer-to-Peer based. UDP has benefits in P2P but more so in larger scale multiuser or DVEs (Distributed Virtual Environments) so hopefully it is focus going forward.
If you want UDP for a game Unity3D currently supports UDP in the web player. Or jMonkeyEngine using Java supports it. Also Torque 3D web based coming soon may also support it.
However, the answer has since changed to a yes; to see how this is now possible, see ericsoco's answer on how to use DatagramSocket
to achieve this.
回答2:
This question was asked long ago, and the answer has since changed to Yes. For others who stumble across this question:
The DatagramSocket class enables UDP communication. For example:
var datagramSocket:DatagramSocket = new DatagramSocket();
datagramSocket.bind(3333, "127.0.0.1");
datagramSocket.addEventListener(DatagramSocketDataEvent.DATA, onUDPReceived);
datagramSocket.receive();
Note: DatagramSocket is only available for AIR for desktop, not for devices or for Flash Player.
回答3:
Yes sort of..
The next version of FMS and Player 10 will introduce a new protocol, RTMFP, which stands for Real Time Messaging Flow Protocol. This is a low latency, UDP based protocol that is based on Amicima's MFP protocol. Amicima was aquired by Adobe in 2006.
Note that being a "UDP based protocol" it is not a raw UDP implementation.