• 用PHP开发C/S结构


    服务器

    // 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! ";

    else

    echo "socket_create() failed:".socket_strerror ($socket)." ";

    $bind = socket_bind ($socket, $ip, $port); // 绑定一个SOCKET

    if ($bind)

    echo "socket_bind() successed! ";

    else

    echo "socket_bind() failed:".socket_strerror ($bind)." ";

    $listen = socket_listen ($socket); // 间听SOCKET

    if ($listen)

    echo "socket_listen() successed! ";

    else

    echo "socket_listen() failed:".socket_strerror ($listen)." ";

    while (true)

    {

    $msg = socket_accept ($socket); // 接受一个SOCKET

    if (!$msg)

    {

    echo "socket_accept() failed:".socket_strerror ($msg)." ";

    break;

    }

    $welcome = "Welcome to PHP Server! ";

    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 QUIT HELP";

    break;

    default:

    $writer = "Error Command!";

    }

    socket_write ($msg, $writer, strlen ($writer));

    if ($command == "QUIT")

    break;

    }

    socket_close ($msg);

    }

    socket_close ($socket); // 关闭SOCKET

    ?>

    客户端

    // 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! ";

    else

    echo "socket_create() failed:".socket_strerror ($socket)." ";

    $conn = socket_connect ($socket, $ip, $port); // 建立SOCKET的连接

    if ($conn)

    echo "Success to connection![".$ip.":".$port."] ";

    else

    echo "socket_connect() failed:".socket_strerror ($conn)." ";

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

    if ($msg == "Bye-Bye")

    break;

    }

    fclose ($stdin);

    socket_close ($socket);

    ?>

     
  • 相关阅读:
    Ghost Button制作教程及设计趋势分析
    onhashchange事件--司徒正美
    window.location.hash属性介绍
    优质UI的7条准则(一)
    当在浏览器地址栏输入一个网址的时候,究竟发生了什么?
    全球最快的JS模板引擎
    眨眼登录表单
    DIV+CSS规范命名
    es6--export,import
    es6--class
  • 原文地址:https://www.cnblogs.com/rlm0909/p/3412617.html
Copyright © 2020-2023  润新知