Advertisement
Guest User

Untitled

a guest
Oct 16th, 2012
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package {
  2.     import flash.net.ServerSocket;
  3.     import flash.net.Socket;
  4.     import flash.events.*;
  5.     public class GameServer {
  6.        
  7.         var clients:Vector.<Socket>;
  8.         var serversock:ServerSocket;
  9.        
  10.         var policysock:ServerSocket;
  11.         var psock:Socket;
  12.        
  13.         public function GameServer() {
  14.             trace("making game serverz");
  15.             clients = new Vector.<Socket>();
  16.              serversock = new ServerSocket();
  17.              serversock.addEventListener( ServerSocketConnectEvent.CONNECT, incomingConnection );
  18.              //serversock.addEventListener( Event.CLOSE, onClose );
  19.              
  20.              //serversock.bind(25000, "127.0.0.1" );
  21.              serversock.bind(25000, _____________SERVER_IP_________________);
  22.              serversock.listen();
  23.              
  24.              
  25.              policysock = new ServerSocket();
  26.              policysock.addEventListener( ServerSocketConnectEvent.CONNECT, incomingConnectionP );
  27.              //serversock.addEventListener( Event.CLOSE, onClose );
  28.              
  29.              //serversock.bind(25000, "127.0.0.1" );
  30.              policysock.bind(843, _____________SERVER_IP_________________);
  31.              policysock.listen();
  32.         }
  33.        
  34.         public function incomingConnection (event:ServerSocketConnectEvent) {
  35.             //The socket is provided by the event object
  36.             var socket:Socket = event.socket as Socket;
  37.             clients.push( socket );
  38.              
  39.             socket.addEventListener( ProgressEvent.SOCKET_DATA, socketDataHandler);
  40.             socket.addEventListener( Event.CLOSE, onClientClose );
  41.             //socket.addEventListener( IOErrorEvent.IO_ERROR, onIOError );
  42.              
  43.            
  44.             trace("socket connection!");
  45.             //Send a connect message
  46.             send("\nNew Chat Connection!\n");
  47.         }
  48.        
  49.        
  50.         private function onClientClose( event:Event ) {
  51.             var socket:Socket = event.target as Socket;
  52.             trace("Socket Disconnection\n");
  53.            
  54.             //send("Someone left the chat :(");
  55.             //Should also remove from clientSockets array...
  56.            
  57.             for (var i:int = 0; i < clients.length; i++) {
  58.                 if (clients[i] == socket) {
  59.                     clients.splice(i, 1);
  60.                     break;
  61.                 }
  62.             }
  63.             send("Someone left the chat :(");
  64.         }
  65.         private function onIOError( errorEvent:IOErrorEvent ) {
  66.             trace( "IOError: " + errorEvent.text );
  67.         }
  68.        
  69.        
  70.         public function socketDataHandler(event:ProgressEvent){
  71.             var socket:Socket = event.target as Socket;
  72.            
  73.             //Read the message from the socket
  74.             var message:String = socket.readUTFBytes( socket.bytesAvailable );
  75.             trace( "Received: " + message);
  76.             send(message);
  77.  
  78.         }
  79.        
  80.         public function send(msg:String) {
  81.             for (var i:int = 0; i < clients.length; i++) {
  82.                 clients[i].writeUTFBytes( msg );
  83.                 clients[i].flush();
  84.             }
  85.         }
  86.        
  87.        
  88.         // policy socket code:
  89.         public function incomingConnectionP (event:ServerSocketConnectEvent) {
  90.             //The socket is provided by the event object
  91.             var socket:Socket = event.socket as Socket;
  92.             psock = socket;
  93.              
  94.             socket.addEventListener( ProgressEvent.SOCKET_DATA, policyHandeler);
  95.             socket.addEventListener( Event.CLOSE, onPsockClose );
  96.             //socket.addEventListener( IOErrorEvent.IO_ERROR, onIOError );
  97.  
  98.             trace("psocket connection!");
  99.             //Send a connect message
  100.         }
  101.         public function policyHandeler(event:ProgressEvent){
  102.             var socket:Socket = event.target as Socket;
  103.                  
  104.             //Read the message from the socket
  105.             var message:String = socket.readUTFBytes( socket.bytesAvailable );
  106.             trace( "Policy Request Received: " + message);
  107.            
  108.             if (message == "<policy-file-request/>") {
  109.                 trace("policies...");
  110.                
  111.                 var policy:String = "<cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"25000\"/></cross-domain-policy>";
  112.                
  113.                
  114.                 socket.writeUTFBytes(policy);
  115.                 socket.writeByte(0);
  116.                 trace(policy);
  117.                    
  118.                 socket.flush();
  119.             }
  120.         }
  121.         private function onPsockClose( event:Event ) {
  122.             trace("Psocket closed");
  123.         }
  124.        
  125.     }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement