• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php使用socket编程示例

    2个php测试文件
    server.php

    复制代码 代码如下:

    ?php
    //phpinfo();
    //确保在连接客户端时不会超时
    set_time_limit(0);

    $ip = '127.0.0.1';
    $port = 1935;

    /*
     +-------------------------------
     *    @socket通信整个过程
     +-------------------------------
     *    @socket_create
     *    @socket_bind
     *    @socket_listen
     *    @socket_accept
     *    @socket_read
     *    @socket_write
     *    @socket_close
     +--------------------------------
     */

    /*----------------    以下操作都是手册上的    -------------------*/
    if(($sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) 0) {
        echo "socket_create() 失败的原因是:".socket_strerror($sock)."\n";
    }

    if(($ret = socket_bind($sock,$ip,$port)) 0) {
        echo "socket_bind() 失败的原因是:".socket_strerror($ret)."\n";
    }

    if(($ret = socket_listen($sock,4)) 0) {
        echo "socket_listen() 失败的原因是:".socket_strerror($ret)."\n";
    }

    $count = 0;

    do {
        if (($msgsock = socket_accept($sock)) 0) {
            echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
            break;
        } else {

            //发到客户端
            $msg ="测试成功!\n";
            socket_write($msgsock, $msg, strlen($msg));

            echo "测试成功了啊\n";
            $buf = socket_read($msgsock,8192);

           
            $talkback = "收到的信息:$buf\n";
            echo $talkback;

            if(++$count >= 5){
                break;
            };

       
        }
        //echo $buf;
        socket_close($msgsock);

    } while (true);

    socket_close($sock);
    ?>


    client.php

    复制代码 代码如下:

    ?php
    error_reporting(E_ALL);
    set_time_limit(0);
    echo "h2>TCP/IP Connection/h2>\n";

    $port = 1935;
    $ip = "127.0.0.1";

    /*
     +-------------------------------
     *    @socket连接整个过程
     +-------------------------------
     *    @socket_create
     *    @socket_connect
     *    @socket_write
     *    @socket_read
     *    @socket_close
     +--------------------------------
     */

    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if ($socket 0) {
        echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
    }else {
        echo "OK.\n";
    }

    echo "试图连接 '$ip' 端口 '$port'...\n";
    $result = socket_connect($socket, $ip, $port);
    if ($result 0) {
        echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
    }else {
        echo "连接OK\n";
    }

    $in = "Ho\r\n";
    $in .= "first blood\r\n";
    $out = '';

    if(!socket_write($socket, $in, strlen($in))) {
        echo "socket_write() failed: reason: " . socket_strerror($socket) . "\n";
    }else {
        echo "发送到服务器信息成功!\n";
        echo "发送的内容为:font color='red'>$in/font> br>";
    }

    while($out = socket_read($socket, 8192)) {
        echo "接收服务器回传信息成功!\n";
        echo "接受的内容为:",$out;
    }

    echo "关闭SOCKET...\n";
    socket_close($socket);
    echo "关闭OK\n";
    ?>

    侦听

    复制代码 代码如下:

    # /usr/local/php/bin/php  /usr/local/apache2/htdocs/server.php


     

    请求

    复制代码 代码如下:

    # /usr/local/php/bin/php  /usr/local/apache2/htdocs/client.php


    默认PHP是没有开启Socket的
     

    复制代码 代码如下:

    #cd ./ext/sockets/
    # /usr/local/php/bin/phpize
    # ./configure --enable-sockets --with-php-config=/usr/local/php/bin/php-config
    # make
    # make install


    php.ini修改配置
    增加
    复制代码 代码如下:

    extension=sockets.so


    重启apache
    复制代码 代码如下:

    # /usr/local/apache2/bin/apachectl restart


    Windows下的配置
    修改php.ini
    复制代码 代码如下:

    extension=php_sockets.dll

    重启apache
    cmd下起2个
    php的安装目录

     

    复制代码 代码如下:

    C:/php/php.exe   F:web/server.php
    C:/php/php.exe   F:web/client.php

    您可能感兴趣的文章:
    • 总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
    • PHP URL地址获取函数代码(端口等) 推荐
    • php实现TCP端口检测的方法
    • phpStudy配置多站点多域名和多端口的方法
    • php实现的ping端口函数实例
    • PHP如何获取当前主机、域名、网址、路径、端口等参数
    • Php做的端口嗅探器--可以指定网站和端口
    • php使用websocket示例详解
    • PHP检查端口是否可以被绑定的方法示例
    上一篇:asp.net利用存储过程实现模糊查询示例分享
    下一篇:实现DataGridView控件中CheckBox列的使用实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php使用socket编程示例 php,使用,socket,编程,示例,