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 动态随机生成验证码类代码
Apr 09 PHP
PHP学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
Jul 25 PHP
smarty模板引擎从配置文件中获取数据的方法
Jan 22 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
php array_keys 返回数组的键名
Oct 25 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
CodeIgniter框架数据库基本操作示例
May 24 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 PHP
详解PHP Swoole与TCP三次握手
May 27 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
PHP form 表单传参明细研究
2009/07/17 PHP
PHP 采集程序原理分析篇
2010/03/05 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
2017/08/18 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
nodejs微信开发之自动回复的实现
2019/03/17 NodeJs
详解Vue源码中一些util函数
2019/04/24 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
同时安装Python2 &amp; Python3 cmd下版本自由选择的方法
2017/12/09 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
90后毕业生的求职信范文
2013/09/21 职场文书
公关关系专员的自我评价分享
2013/11/20 职场文书
某同学的自我鉴定范文
2013/12/26 职场文书
幼儿园保育员辞职信
2014/01/12 职场文书
公务员综合考察材料
2014/02/01 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
讲文明倡议书
2015/04/29 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
详解CSS3浏览器兼容
2022/12/24 HTML / CSS