Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package {
- import flash.net.ServerSocket;
- import flash.net.Socket;
- import flash.events.*;
- public class GameServer {
- var clients:Vector.<Socket>;
- var serversock:ServerSocket;
- var policysock:ServerSocket;
- var psock:Socket;
- public function GameServer() {
- trace("making game serverz");
- clients = new Vector.<Socket>();
- serversock = new ServerSocket();
- serversock.addEventListener( ServerSocketConnectEvent.CONNECT, incomingConnection );
- //serversock.addEventListener( Event.CLOSE, onClose );
- //serversock.bind(25000, "127.0.0.1" );
- serversock.bind(25000, _____________SERVER_IP_________________);
- serversock.listen();
- policysock = new ServerSocket();
- policysock.addEventListener( ServerSocketConnectEvent.CONNECT, incomingConnectionP );
- //serversock.addEventListener( Event.CLOSE, onClose );
- //serversock.bind(25000, "127.0.0.1" );
- policysock.bind(843, _____________SERVER_IP_________________);
- policysock.listen();
- }
- public function incomingConnection (event:ServerSocketConnectEvent) {
- //The socket is provided by the event object
- var socket:Socket = event.socket as Socket;
- clients.push( socket );
- socket.addEventListener( ProgressEvent.SOCKET_DATA, socketDataHandler);
- socket.addEventListener( Event.CLOSE, onClientClose );
- //socket.addEventListener( IOErrorEvent.IO_ERROR, onIOError );
- trace("socket connection!");
- //Send a connect message
- send("\nNew Chat Connection!\n");
- }
- private function onClientClose( event:Event ) {
- var socket:Socket = event.target as Socket;
- trace("Socket Disconnection\n");
- //send("Someone left the chat :(");
- //Should also remove from clientSockets array...
- for (var i:int = 0; i < clients.length; i++) {
- if (clients[i] == socket) {
- clients.splice(i, 1);
- break;
- }
- }
- send("Someone left the chat :(");
- }
- private function onIOError( errorEvent:IOErrorEvent ) {
- trace( "IOError: " + errorEvent.text );
- }
- public function socketDataHandler(event:ProgressEvent){
- var socket:Socket = event.target as Socket;
- //Read the message from the socket
- var message:String = socket.readUTFBytes( socket.bytesAvailable );
- trace( "Received: " + message);
- send(message);
- }
- public function send(msg:String) {
- for (var i:int = 0; i < clients.length; i++) {
- clients[i].writeUTFBytes( msg );
- clients[i].flush();
- }
- }
- // policy socket code:
- public function incomingConnectionP (event:ServerSocketConnectEvent) {
- //The socket is provided by the event object
- var socket:Socket = event.socket as Socket;
- psock = socket;
- socket.addEventListener( ProgressEvent.SOCKET_DATA, policyHandeler);
- socket.addEventListener( Event.CLOSE, onPsockClose );
- //socket.addEventListener( IOErrorEvent.IO_ERROR, onIOError );
- trace("psocket connection!");
- //Send a connect message
- }
- public function policyHandeler(event:ProgressEvent){
- var socket:Socket = event.target as Socket;
- //Read the message from the socket
- var message:String = socket.readUTFBytes( socket.bytesAvailable );
- trace( "Policy Request Received: " + message);
- if (message == "<policy-file-request/>") {
- trace("policies...");
- var policy:String = "<cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"25000\"/></cross-domain-policy>";
- socket.writeUTFBytes(policy);
- socket.writeByte(0);
- trace(policy);
- socket.flush();
- }
- }
- private function onPsockClose( event:Event ) {
- trace("Psocket closed");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement