So I'm making a TCP Socket Flash game, and I got it connected and working alright, it works fine over the LAN, but when I try to play with someone on a different router using Hamachi, the first message sends fine, but every additional message just throws the "Operation Attempted On Invalid Socket" error and it disconnects them. I'm assuming this is due to the socket policy server. I THOUGHT I added one correctly... but I guess I didn't? Here's a code in the client:

HTML Code:
security.addEventListener(Event.COMPLETE, loadComplete);
function loadComplete(e:Event):void
{
	security.load(new URLRequest("security-app.xml"));
	securityContent = XML(security.data);
	securityContent.ignoreWhite = true;
	Security.loadPolicyFile("security-app.xml")
	security.removeEventListener(Event.COMPLETE, loadComplete);
}
And here is the XML document:

HTML Code:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from to-ports="8080" domain="*"/>
</cross-domain-policy>
So... any ideas of what's wrong, or what I'm supposed to do to add it correctly? I've been looking allover the place for a long time and can't seem to find any actual answers. Thanks.