虚拟主机域名注册-常见问题php技术 → php技术


[原创]php中的socekt的使用类实例和应用场景分析
作者:

在大型网站中,常见有很多的耗时的功能,如果还是用php来执行的话,效率会很低,经常会把网站卡死。

这时,我们需要把这些耗时的功能用其它程序来实现,比如c语言。

那么,我们的php程序如何和c语言交互呢,现在一般的做法就是通过socket方式。

用这种方式来交换数据,c在底层把想要的结果计算好,再通过socket端口返回给php.


在php中的操作socket的操作类如下:

<?php
/**
 使用一例
$ss=new SocketClient("121.52.212.181", "50007");
echo $ss->sendmsg("我是内容");
$ss->close();
by http://www.jqyui.com
**/
class SocketClient{
     var $socket; //socket 句柄
     var $debug = 1;
     /**
      * @param $hostname  主机地址
      * @param $port 端口
      */
     function SocketClient(){
          global $SYS_config;
          $address = gethostbyname($SYS_config["picapihost"]);
          
          $this->socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
           
          $result =  socket_connect($this->socket,$address,$SYS_config["picapiport"]);
          if($this->debug == 1){
                if ($result < 0) echo "socket_connect() failed.<br>";
          }   
     }
     /**
      * 接收参数并返回结果字任串
      * @param $msg
      */
     function sendmsg($msg){
             
          socket_write($this->socket,$msg,strlen($msg));
          $result  = socket_read($this->socket,6000);
          return $result;
     }
     /**
      * 关闭连接
      */
     function close(){
        socket_close($this->socket);
     }
 
}
 
 
?>

应用后是不是感觉网站快多了。



来源:
阅读:1514
日期:2013-04-17

【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:分享php版的memcache的操作类代码
下一篇:cookie值在不修改的情况下竟然不相同
  >> 相关文章