# XMLSocket, "Error #2048: Security sandbox violation"

**URL:** <https://forum.kirupa.com/t/xmlsocket-error-2048-security-sandbox-violation/288493>\
**Category:** flash\
**Created:** [May 16, 2009, 10:21pm UTC](https://forum.kirupa.com/t/xmlsocket-error-2048-security-sandbox-violation/288493 "2009-05-16T22:21:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![kedinik](https://avatars.discourse-cdn.com/v4/letter/k/8c91f0/32.png) [@kedinik](https://forum.kirupa.com/u/kedinik)\
**Post date:** [May 16, 2009, 10:21pm UTC](https://forum.kirupa.com/t/xmlsocket-error-2048-security-sandbox-violation/288493/1 "2009-05-16T22:21:45Z")

</div>

I’m attempting to create an XMLSocket that connects to a PHP-written socket server.

I think my code is pretty sound. I used to receive an IOError, but now that is solved and I keep receiving “Error #2048: Security sandbox violation”. My .swf, socket server, and crossdomain files are all in the same directory.

My ActionScript:

```auto
package
{
    import flash.display.MovieClip;
    import flash.events.IOErrorEvent;
    import flash.events.Event;
    import flash.net.XMLSocket;
    import flash.text.*;
    import flash.events.ProgressEvent;
    import flash.events.SecurityErrorEvent;
    import flash.system.Security;
    
    public class XMLSocketTest extends MovieClip
    {
        public function XMLSocketTest():void
        {
            socket = new XMLSocket();

            socket.addEventListener(IOErrorEvent.IO_ERROR, traceError);
            socket.addEventListener(Event.CONNECT, connectionHandler);
            socket.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        
            socket.connect("My IP Address", 9001);
        }
        
        private var socket:XMLSocket;
        
        private function progressHandler(event:ProgressEvent):void
        {
            tracer.text = String(event.bytesLoaded / event.bytesTotal);
        }
        
        private function securityErrorHandler(event:SecurityErrorEvent):void
        {
            tracer.text = event.text;
        }
        
        private function traceError(event:IOErrorEvent):void
        {
            tracer.text = event.text;
        }
        
        private function connectionHandler(event:Event):void
        {
            tracer.text = "Great success!";
        }
    }
}

```

The PHP Socket Server:

```auto
<?php
// Set time limit to indefinite execution
set_time_limit (0);

// Set the ip and port we will listen on
$address = 'My IP Address';
$port = 9001;

// Create a TCP Stream socket
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
// Bind the socket to an address/port
socket_bind($sock, $address, $port) or die('Could not bind to address');
// Start listening for connections
socket_listen($sock);

/* Accept incoming requests and handle them as child processes */
$client = socket_accept($sock);

// Read the input from the client, up to 1024 bytes
$input = socket_read($client, 1024);

// Strip all white spaces from input
$output = ereg_replace("[ 	
\r]","",$input).chr(0);

// Display output back to client
socket_write($client, $output);

// Close the client (child) socket
socket_close($client);

// Close the master sockets
socket_close($sock);
?> 

```

The crossdomain policy file:

```auto
<?xml version="1.0"?> 
<!-- http://10.0.1.31/crossdomain.xml --> 
<cross-domain-policy> 
<allow-access-from domain="*" to-ports="*" /> 
</cross-domain-policy>

```

Any help or advice would be much appreciated.
