日期:2011-05-03  浏览次数:20452 次


服务器
<?php
// Server
// 设置错误处理
error_reporting (E_ALL);
// 设置运行时间
set_time_limit (0);
// 起用缓冲
ob_implicit_flush ();
$ip = "127.0.0.1";        // IP地址
$port = 1000;             // 端口号

$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);       // 创建一个SOCKET
if ($socket)
    echo "socket_create() successed!\n";
else
    echo "socket_create() failed:".socket_strerror ($socket)."\n";

$bind = socket_bind ($socket, $ip, $port);              // 绑定一个SOCKET
if ($bind)
    echo "socket_bind() successed!\n";
else
    echo "socket_bind() failed:".socket_strerror ($bind)."\n";

$listen = socket_listen ($socket);                 // 间听SOCKET
if ($listen)
    echo "socket_listen() successed!\n";
else
    echo "socket_listen() failed:".socket_strerror ($listen)."\n";

while (true)
{
    $msg = socket_accept ($socket);               // 接受一个SOCKET
    if (!$msg)
    {
        echo "socket_accept() failed:".socket_strerror ($msg)."\n";
        break;
    }
    $welcome = "Welcome to PHP Server!\n";
    socket_write ($msg, $welcome, strlen ($welcome));
    while (true)
    {
        $command = strtoupper (trim (socket_read ($msg, 1024)));
        if (!$command)
            break;
        switch ($command)
        {
            case "HELLO":
                $writer = "Hello Everybody!";
                break;
            case "QU99v":
                $writer = "Bye-Bye";
                break;
            case "HELP":
                $writer = "HELLO\tQU99v\tHELP";
                break;
            default:
                $writer = "Error Command!";