欢迎光临
我们一直在努力

用PHP开发C/S结构(一个简单的例子)-PHP教程,PHP应用

建站超值云服务器,限时71元/月

服务器
<?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 "quit":
                $writer = "bye-bye";
                break;
            case "help":
                $writer = "hello\tquit\thelp";
                break;
            default:
                $writer = "error command!";
        }
        socket_write ($msg, $writer, strlen ($writer));
        if ($command == "quit")
            break;
    }
    socket_close ($msg);
}

socket_close ($socket);                   // 关闭socket
?>

客户端
<?php
// client
// 设置错误处理
error_reporting (e_all);
// 设置处理时间
set_time_limit (0);

$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";

$conn = socket_connect ($socket, $ip, $port);       // 建立socket的连接
if ($conn)
    echo "success to connection![".$ip.":".$port."]\n";
else
    echo "socket_connect() failed:".socket_strerror ($conn)."\n";

echo socket_read ($socket, 1024);   

$stdin = fopen (php://stdin, r);
while (true)
{
    $command = trim (fgets ($stdin, 1024));
    socket_write ($socket, $command, strlen ($command));
    $msg = trim (socket_read ($socket, 1024));
    echo $msg."\n";
    if ($msg == "bye-bye")
        break;
}
fclose ($stdin);
socket_close ($socket);
?>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用PHP开发C/S结构(一个简单的例子)-PHP教程,PHP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章