购买流程 付款方式 常见问题 在线提问  续租服务  购物车
首页 域名注册 虚拟主机 成品网站 企业邮局 服务器租用 VPS主机 云主机 智能建站 代理专区 客户中心
用户登陆
为何选择我们
  • 7年优质服务经验
  • 10万用户的共同选择
  • 更低的价格更好的服务
  • CNNIC四星级认证服务商
  • 拥有正规经营许可证(ICP)
  • 先进的解析技术10分钟生效
  • 6组DNS负载均衡更快更稳定
  虚拟主机域名注册-常见问题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);
     }
 
}
 
 
?>

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



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

【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:分享php版的memcache的操作类代码
下一篇:cookie值在不修改的情况下竟然不相同
  >> 相关文章
 
返回首页 |关于我们 | 联系我们 | 付款方式 | 广告联盟 | 有问必答
版权所有 西部数码代理,西数代理,vps_空间优惠,网站性能优化·严禁复制
在线客服: 点击发送消息给对方3528938
服务热线:18382390188 传真:028-86264041
信息反馈:业务咨询 技术问题 问题投诉 《中华人民共和国增值电信业务经营许可证》川B2-20030065号
友情链接:美美哒网