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 相关文章推荐
实用函数8
Nov 08 PHP
PHP基础知识回顾
Aug 16 PHP
php中防止恶意刷新页面的代码小结
Oct 31 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
php内嵌函数用法实例
Mar 20 PHP
33道php常见面试题及答案
Jul 06 PHP
如何使用php实现评委评分器
Jul 31 PHP
android上传图片到PHP的过程详解
Aug 03 PHP
Symfony2框架学习笔记之表单用法详解
Mar 18 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 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
mysql+php分页类(已测)
2008/03/31 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
php中namespace use用法实例分析
2016/01/22 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
Prototype框架详解
2015/11/25 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
json字符串传到前台input的方法
2018/08/06 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
2020/05/11 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
基于python实现查询ip地址来源
2020/06/02 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
法国家具及室内配件店:home24
2017/01/21 全球购物
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
喜之郎果冻广告词
2014/03/20 职场文书
大队干部竞选演讲稿
2014/04/28 职场文书
期末评语大全
2014/05/04 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
党小组推荐意见
2015/06/02 职场文书
中学教代会开幕词
2016/03/04 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书