PHP Socket网络操作类定义与用法示例


Posted in PHP onAugust 30, 2017

本文实例讲述了PHP Socket网络操作类定义与用法。分享给大家供大家参考,具体如下:

web前端测试:

<html>
<head>
  <title>test</title>
  <script>
  g_xmlHttpReq = new XMLHttpRequest();
  function onReplyCallback()
  {
    if(g_xmlHttpReq.readyState==4 && g_xmlHttpReq.status==200)
    {
      alert(g_xmlHttpReq.responseText);
    }
  }
  function on_stop_service()
  {
    var cmd = document.getElementById("inCmd").value;
    g_xmlHttpReq.open("GET","./service/main.php?cmd=" + cmd,true);
    g_xmlHttpReq.onreadystatechange=onReplyCallback;
    g_xmlHttpReq.send(null);
  }
  </script>
</head>
<body>
<input type="text" id="inCmd">
<hr>
<button onclick="on_stop_service()">关闭服务</button>
</body>
</html>

mysocket.php:

<?php
class Connector
{
  public static $instance=null;
  public $conn;
  private function __construct()
  {
      set_time_limit(0);
      $ip = '192.168.238.1';
      $port = 8888;
      if(($this->conn = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) < 0)
      {
        echo "socket_create() 失败的原因是:".socket_strerror($this->conn)."\n";
      }
      $result = socket_connect($this->conn, $ip, $port);
      if ($result < 0) {
        echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
      }else {
        echo "连接OK\n";
      }
  }
  public static function getInstance()
  {
    if(is_null(self::$instance))
    {
      self::$instance = new Connector;
    }
    return self::$instance;
  }
  public function sendMsg($msg)
  {
    socket_write($this->conn,$msg);
  }
  public function getMsg()
  {
    $clients = array($this->conn);
    while(true)
    {
      $read = $clients;
      $wrSet = NULL;
      $errSet = NULL;
      if(socket_select($read, $wrSet,$errSet, 3) < 1)
      {
        continue;
      }
      foreach($read as $read_sock)
      {
        $data = @socket_read($read_sock,1024,PHP_BINARY_READ);
        socket_close($this->conn);
        return $data;
      }
    }
  }
}
?>

main.php(调用场所):

<?php
require_once('mysocket.php');
$con = Connector::getInstance();
$req = $_GET['cmd'];
$con->sendMsg($req);
$ret = $con->getMsg();
echo $ret;
?>

应用说明:

客户端ajax发起请求调用Php,然后php借助socket进一步发起请求给C++模块。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php cookie 登录验证示例代码
Mar 16 PHP
php存储过程调用实例代码
Feb 03 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
深入浅出php socket编程
May 13 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
thinkphp微信开发(消息加密解密)
Dec 02 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
php redis setnx分布式锁简单原理解析
Oct 23 PHP
PHP 实现重载
Mar 09 PHP
php+laravel 扫码二维码签到功能
May 15 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 #PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 #PHP
Laravel框架中Blade模板的用法示例
Aug 30 #PHP
php实现支持中文的文件下载功能示例
Aug 30 #PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 #PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 #PHP
PHP单例模式与工厂模式详解
Aug 29 #PHP
You might like
isset和empty的区别
2007/01/15 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
JavaScript中获取元素索引的函数
2010/09/10 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
Bootstrap中表单控件状态(验证状态)
2016/08/04 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
python书籍信息爬虫实例
2018/03/19 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
幼儿园毕业教师感言
2014/02/21 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
单位工作证明格式模板
2014/10/04 职场文书
美术教师个人工作总结
2015/02/06 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python