本文实例讲述了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 socket用法总结》、《php字符串(string)用法总结》、《PHP数学运算技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP网络编程技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
# PHP
# Socket
# 网络操作类
# php whois查询API制作方法
# 用PHP查询域名状态whois的类
# PHP实现域名whois查询的代码(数据源万网、新网)
# php查询whois信息的方法
# 用PHP实现标准的IP Whois查询
# PHP+Ajax 检测网络是否正常实例详解
# php判断是否连接上网络的方法实例详解
# PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
# 使用PHP curl模拟浏览器抓取网站信息
# PHP whois查询类定义与用法示例
# 程序设计
# 相关内容
# 感兴趣
# 数据结构
# 给大家
# 更多关于
# 所述
# 面向对象
# 客户端
# 操作技巧
# 编程技巧
# 讲述了
# main
# service
# open
# true
相关文章:
建站之星2.7模板快速切换与批量管理功能操作指南
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
,柠檬视频怎样兑换vip?
如何高效利用亚马逊云主机搭建企业网站?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
建站之星后台密码遗忘?如何快速找回?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
文字头像制作网站推荐软件,醒图能自动配文字吗?
建站之星如何保障用户数据免受黑客入侵?
建站主机系统SEO优化与智能配置核心关键词操作指南
网站制作模板下载什么软件,ppt模板免费下载网站?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
韩国服务器如何优化跨境访问实现高效连接?
如何选择CMS系统实现快速建站与SEO优化?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
代购小票制作网站有哪些,购物小票的简要说明?
如何在云服务器上快速搭建个人网站?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
jQuery 常见小例汇总
如何快速生成橙子建站落地页链接?
视频网站制作教程,怎么样制作优酷网的小视频?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
北京的网站制作公司有哪些,哪个视频网站最好?
长沙企业网站制作哪家好,长沙水业集团官方网站?
h5网站制作工具有哪些,h5页面制作工具有哪些?
,购物网站怎么盈利呢?
如何选择服务器才能高效搭建专属网站?
建站之星如何快速更换网站模板?
如何高效配置IIS服务器搭建网站?
如何规划企业建站流程的关键步骤?
建站之星如何防范黑客攻击与数据泄露?
建站之星与建站宝盒如何选择最佳方案?
建站之星价格显示格式升级,你的预算足够吗?
建站之星导航配置指南:自助建站与SEO优化全解析
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
建站主机选虚拟主机还是云服务器更好?
c# await 一个已经完成的Task会发生什么
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
建站主机是否属于云主机类型?
html制作网站的步骤有哪些,iapp如何添加网页?
建站主机核心功能解析:服务器选择与网站搭建流程指南
如何通过山东自助建站平台快速注册域名?
如何在宝塔面板创建新站点?
如何在阿里云高效完成企业建站全流程?
b2c电商网站制作流程,b2c水平综合的电商平台?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
*请认真填写需求信息,我们会在24小时内与您取得联系。