Hi
I am trying to connect a Flash client socket (XML) to a php socket server (using Flash 8 and php 5).
My php socket server responds correctly when I connect to it with a php client socket but fails when I try to connect with the flash xml client socket.

Both codes are included below - they are both in the same folder on the web site and I am only trying to get them to connect.

Cheers

doc

THE PHP SOCKET SERVER (run on browser for the moment - daemon later when sorted!)
<?php
// set some variables
$host = "my ip address";
$port = 1234;
// don't timeout!
set_time_limit(0);
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n");
// bind socket to port
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
// start listening for connections
$result = socket_listen($socket, 5) or die("Could not set up socketlistener\n");
// accept incoming connections
// spawn another socket to handle communication
$spawn = socket_accept($socket) or die("Could not accept incomingconnection\n");
// read client input
$input = socket_read($spawn, 1024) or die("Could not read input\n");
$output = "Hello"."\0";
socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n");
*/
// close sockets
socket_close($spawn);
socket_close($socket);
?>

THE FLASH CLIENT SERVER (this is a one frame swf run on a simple web page)
mySocket = new XMLSocket();

mySocket.onConnect = function(success) {
if (success) {msgArea.htmlText += "<b>Server connection established!</b>";} else {
msgArea.htmlText += "<b>Server connection failed!</b>";}
}

mySocket.onClose = function() {
msgArea.htmlText += "<b>Server connection lost</b>";
}

XMLSocket.prototype.onData = function(msg) {
msgArea.htmlText += msg;
}

mySocket.connect("my ip address", 1234);

Hey. I have the same problem, exactly. I figured that the php client can connect because it is on the same folder and server (trinitrol.com) as the php server. However, my flash client is on another computer.

The php server is bound on 127.0.0.1 (localhost), and so is the php client, so it works. The flash client tries connecting to trinitrol.com (or 72.47.196.123) and it doesn't work.

I yet to find a solution which I think is binding the server to the public host 72.47.196.123 which still doesn't work.

If you have MSN/Windows Live Messenger, talk to me at (neo at tranysiss.com) or e-mail me at (celeroncyto at gmail.com). Let me know if you find a solution.

Cheers.

i saw, do you use socket_read on server side (some time it doesn't work for flash)
your code:
#$input = socket_read($spawn, 1024) or die("Could not read input\n");
$output = "Hello"."\0";
#
try replace the code to:
$bytes = socket_recv($socket, $buffer, 2048, 0);
if($byte != 0)
{
echo $buffer;
}


//on the client side remember ( flash)
to use "\n" on the end of the message you send.

i hope it will help!

Hey. I have the same problem, exactly. I figured that the php client can connect because it is on the same folder and server (trinitrol.com) as the php server. However, my flash client is on another computer.

The php server is bound on 127.0.0.1 (localhost), and so is the php client, so it works. The flash client tries connecting to trinitrol.com (or 72.47.196.123) and it doesn't work.

I yet to find a solution which I think is binding the server to the public host 72.47.196.123 which still doesn't work.

If you have MSN/Windows Live Messenger, talk to me at (neo at tranysiss.com) or e-mail me at (celeroncyto at gmail.com). Let me know if you find a solution.

Cheers.

I have the same problem too, i using delphi as the server, it work smoothly as individual application but it doesn't work when i run it in a web browser, i already add global security option for this file. Adobe.com mention something about cross domain file and "Flash Player security features" . Somebody can help me ???

I have found the solution. It's seem that the flash file (swf) can't set global security in linux server (i use fedora 7 as my web server).
The solution is i move the flash file to the windows server, and refer my page to that server.

This article has been dead for over six months. Start a new discussion instead.