13.08.2012 Views

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>ACTIONSCRIPT</strong> 3.0 DEVELOPER’S GUIDE<br />

Sockets<br />

package<br />

{<br />

import flash.display.Sprite;<br />

import flash.ev<strong>en</strong>ts.DatagramSocketDataEv<strong>en</strong>t;<br />

import flash.ev<strong>en</strong>ts.Ev<strong>en</strong>t;<br />

import flash.net.DatagramSocket;<br />

import flash.utils.ByteArray;<br />

public class DatagramSocketExample ext<strong>en</strong>ds Sprite<br />

{<br />

private var datagramSocket:DatagramSocket;<br />

}}<br />

//The IP and port for this computer<br />

private var localIP:String = "192.168.0.1";<br />

private var localPort:int = 55555;<br />

//The IP and port for the target computer<br />

private var targetIP:String = "192.168.0.2";<br />

private var targetPort:int = 55555;<br />

public function DatagramSocketExample()<br />

{<br />

//Create the socket<br />

datagramSocket = new DatagramSocket();<br />

datagramSocket.addEv<strong>en</strong>tList<strong>en</strong>er( DatagramSocketDataEv<strong>en</strong>t.DATA, dataReceived );<br />

}<br />

//Bind the socket to the local network interface and port<br />

datagramSocket.bind( localPort, localIP );<br />

//List<strong>en</strong> for incoming datagrams<br />

datagramSocket.receive();<br />

//Create a message in a ByteArray<br />

var data:ByteArray = new ByteArray();<br />

data.writeUTFBytes("Hello.");<br />

//S<strong>en</strong>d the datagram message<br />

datagramSocket.s<strong>en</strong>d( data, 0, 0, targetIP, targetPort);<br />

private function dataReceived( ev<strong>en</strong>t:DatagramSocketDataEv<strong>en</strong>t ):void<br />

{<br />

//Read the data from the datagram<br />

trace("Received from " + ev<strong>en</strong>t.srcAddress + ":" + ev<strong>en</strong>t.srcPort + "> " +<br />

ev<strong>en</strong>t.data.readUTFBytes( ev<strong>en</strong>t.data.bytesAvailable ) );<br />

}<br />

Keep in mind the following considerations wh<strong>en</strong> using UDP sockets:<br />

A single packet of data cannot be larger than the smallest maximum transmission unit (MTU) of the network<br />

interface or any network nodes betwe<strong>en</strong> the s<strong>en</strong>der and the recipi<strong>en</strong>t. All of the data in the ByteArray object passed<br />

to the s<strong>en</strong>d() method is s<strong>en</strong>t as a single packet. (In TCP, large messages are brok<strong>en</strong> up into separate packets.)<br />

There is no handshaking betwe<strong>en</strong> the s<strong>en</strong>der and the target. Messages are discarded without error if the target does<br />

not exist or does not have an active list<strong>en</strong>er at the specified port.<br />

Last updated 6/6/2012<br />

808

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!