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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Sockets<br />

Server sockets<br />

Adobe AIR 2 and later<br />

Use the ServerSocket class to allow other processes to connect to your application using a Transport Control Protocol<br />

(TCP) socket. The connecting process can be running on the local computer or on another network-connected<br />

computer. Wh<strong>en</strong> a ServerSocket object receives a connection request, it dispatches a connect ev<strong>en</strong>t. The<br />

ServerSocketConnectEv<strong>en</strong>t object dispatched with the ev<strong>en</strong>t contains a Socket object. You can use this Socket object<br />

for subsequ<strong>en</strong>t communication with the other process.<br />

To list<strong>en</strong> for incoming socket connections:<br />

1 Create a ServerSocket object and bind it to a local port<br />

2 Add ev<strong>en</strong>t list<strong>en</strong>ers for the connect ev<strong>en</strong>t<br />

3 Call the list<strong>en</strong>() method<br />

4 Respond to the connect ev<strong>en</strong>t, which provides a Socket object for each incoming connection<br />

The ServerSocket object continues to list<strong>en</strong> for new connections until you call the close() method.<br />

The following code example illustrates how to create a socket server application. The example list<strong>en</strong>s for incoming<br />

connections on port 8087. Wh<strong>en</strong> a connection is received, the example s<strong>en</strong>ds a message (the string “Connected.”) to<br />

the cli<strong>en</strong>t socket. Thereafter, the server echoes any messages received back to the cli<strong>en</strong>t.<br />

package<br />

{<br />

import flash.display.Sprite;<br />

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

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

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

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

import flash.net.ServerSocket;<br />

import flash.net.Socket;<br />

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

{<br />

private var serverSocket:ServerSocket;<br />

private var cli<strong>en</strong>tSockets:Array = new Array();<br />

public function ServerSocketExample()<br />

{<br />

try<br />

{<br />

// Create the server socket<br />

serverSocket = new ServerSocket();<br />

// Add the ev<strong>en</strong>t list<strong>en</strong>er<br />

serverSocket.addEv<strong>en</strong>tList<strong>en</strong>er( Ev<strong>en</strong>t.CONNECT, connectHandler );<br />

serverSocket.addEv<strong>en</strong>tList<strong>en</strong>er( Ev<strong>en</strong>t.CLOSE, onClose );<br />

// Bind to local port 8087<br />

serverSocket.bind( 8087, "127.0.0.1" );<br />

// List<strong>en</strong> for connections<br />

serverSocket.list<strong>en</strong>();<br />

trace( "List<strong>en</strong>ing on " + serverSocket.localPort );<br />

Last updated 6/6/2012<br />

805

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

Saved successfully!

Ooh no, something went wrong!