error_reporting(E_ALL);
set_time_limit(0); //设置不限制超时
/* Turn on implicit output flushing so we see what we're getting
* as it comes in. */
ob_implicit_flush();
//服务器ip和端口
$address = '127.0.0.1';
$port = 11915;
//启动服务
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
echo "socket_create() 失败: 原因: " . socket_strerror($sock) . "\n";
}
//绑定
if (($ret = socket_bind($sock, $address, $port)) < 0) {
echo "socket_bind() 失败: 原因: " . socket_strerror($ret) . "\n";
}
//侦听
if (($ret = socket_listen($sock, 5)) < 0) {
echo "socket_listen() 失败: 原因:: " . socket_strerror($ret) . "\n";
}
echo "连接................";
//等待连接...
do {
//接受连接
if (($msgsock = socket_accept($sock)) < 0) {
echo "socket_accept() 失败: 原因: " . socket_strerror($msgsock) . "\n";
break;
}
$msg = "\n欢迎使用PHP Test服务器. \n" .
"输入 'quit'可退出. 关闭服务器可以输入 'shutdown'.\n\0";
echo "某某人已连接";
//给客户端发欢迎消息
socket_send($msgsock, $msg, strlen($msg),0);
//等待客户端发来的消息
do {
//接受来自客户端的消息
socket_recv($msgsock, $buf, 2048, 0);
if (false === ($buf = socket_read($msgsock, 2048))) {
echo "socket_read() 失败: 原因:: " . socket_strerror($ret) . "\n";
break 2;
}
//flash端关闭的时候会给服务端发送一个空消息,判断退出
if ($buf == '') {
socket_close($msgsock);
echo "某某人退出";
break;
}
//把客户端发送的消息群发
$talkback = "你说了: $buf";
echo $talkback;
socket_send($msgsock, $talkback, strlen($talkback),0);
} while (true);
//关闭客户端
socket_close($msgsock);
} while (true);
//关闭服务器端
socket_close($sock);
?>
var socket = new XMLSocket();
socket.onConnect = function (success:Boolean) {
if (success) {
trace ("连接成功!")
} else {
trace ("连接失败!")
}
}
if (!socket.connect("127.0.0.1", 11915)) {
trace("连接失败.");
}else {
trace("等待连接");
}
//来自服务端的数据
socket.onData = function (doc) {
trace("数据长度=="+doc.length)
trace(doc);
}
//处理帧频事件
_root.onEnterFrame = function()
{
if(Key.isDown(Key.END))
{
socket.send(Math.random());
//trace("发送")
}
if(Key.isDown(40))
{
socket.close();
}
}