我想为OrientDB的二进制API编写

PHP适配器.

但是我需要一些在PHP中具有原始套接字通信经验的人的帮助 – 我似乎无法超越将PHP连接到OrientDB的第一个障碍.

如果有人使用套接字来体验这个,我将不胜感激:

如果我们可以通过第一个障碍并实际发送一个数据包(该页面底部的简化示例 – 请向下滚动到最后),我当然可以编写适配器.

如果我这样做,这当然会作为开源发布.

希望有人可以帮助我开始?

谢谢!

2010年11月20日

引用PEAR的Net_Socket,我最终得到了与早期尝试的相同的代码,使用fsockopen()和常规的PHP流函数.

我仍然无处可去.服务器根本没有反应,即使设置了5秒的超时,脚本也会进入深度睡眠状态,直到超出一般的PHP脚本时间限制才会出现.

这是代码:

header('Content-type: text/plain');

error_reporting(E_ALL | E_NOTICE | E_WARNING);

$txid = 123;

$db = 'demo';

$username = 'writer';

$password = 'writer';

$packet = "\x05". # 1 byte

pack('i',$txid). # 4 bytes

pack('i',strlen($db)).$db. # string

pack('i',strlen($username)).$username. # string

pack('i',strlen($password)).$password; # string

hex_dump($packet);

$addr = '127.0.0.1';

$port = 2424;

$timeout = 5;

$errstr = '';

$errno = 0;

$socket = fsockopen($addr, $port, $errno, $errstr, $timeout);

stream_set_blocking($socket, 1);

socket_set_timeout($socket, $timeout);

var_dump($socket);

fwrite($socket, $packet);

$response = '';

while (!feof($socket))

$response .= fread($socket, 1024);

hex_dump($response);

fclose($socket);

这是我用来检查我提交的数据包的hex_dump()函数:

function hex_dump($data, $newline="\n")

{

static $from = '';

static $to = '';

static $width = 16; # number of bytes per line

static $pad = '.'; # padding for non-visible characters

if ($from==='')

{

for ($i=0; $i<=0xFF; $i++)

{

$from .= chr($i);

$to .= ($i >= 0x20 && $i <= 0x7E) ? chr($i) : $pad;

}

}

$hex = str_split(bin2hex($data), $width*2);

$chars = str_split(strtr($data, $from, $to), $width);

$offset = 0;

foreach ($hex as $i => $line)

{

echo sprintf('%6X',$offset).' : '.implode(' ', str_split($line,2)) . ' [' . $chars[$i] . ']' . $newline;

$offset += $width;

}

}

根据OrientDB的作者Luca Garulli的说法,我提交的数据包看起来是正确的.所以别的什么不对……

这可能是一个Windows问题吗?我在Windows上使用PHP 5.3,在Apache下…

php orientdb,从PHP连接到OrientDB相关推荐

  1. orientdb教程(2)-orientdb基本概念

    文档地址: http://www.orientdb.org/docs/2.0/orientdb.wiki/Tutorial-Record-ID.html https://orientdb.com/do ...

  2. 链接orientdb的图形数据库_文档数据库 OrientDB

    OrientDB 是一个可伸缩的文档数据库,支持 ACID 事务处理.使用 Java 5 实现. OrientDB是兼具文挡数据库的灵活性和图形数据库管理链接能力的可深层次扩展的文档-图形数据库管理系 ...

  3. orientdb教程(1)-orientdb安装

    1.下载地址 http://www.orientdb.org/ 2.安装orientdb (1)解压安装包 tar -zxvf orientdb-3.0.15.tar.gz (2)进入bin目录,运行 ...

  4. 2.OrientDB连接操作

    查考教程:https://www.w3cschool.cn/orientdb/ 1.连接到orientDB 进入orientDB安装目录,执行console.sh sh console.sh 输入连接 ...

  5. python里orient_从Python访问OrientDB

    我想将一个> 1mn记录的 MySQL数据库转换成一个图形数据库,因为它是一个链接很多的网络类型数据. Neo4J的免费版本有一些我认为可能会遇到的限制,因此我安装了OrientDB(Commu ...

  6. orientDB导入CSV数据

    此示例描述了将CSV文件作为图形导入OrientDB的过程.为简单起见,仅考虑以下两个实体: 贴吧(post) 评论(Comment) 同时考虑Post和Comment之间的关系为One-2-Many ...

  7. OrientDB系列:(一)初步使用及相关概念

    1 初步使用 1.1 安装 目前OrientDB的最新版本为3.x,可通过官网下载. python通过pyorient包与OrientDB连接时,需要OrientDB版本为2.x,下载地址.其中,2. ...

  8. OrientDB部署

    1. 环境准备 操作系统: Centos6.8 内存: 8G(分布式部署时建议4G及以上,否则需要手动修改JVM配置) JDK: 建议jdk8版本(3.0版本要求jdk8) 环境变量:需配置JAVA_ ...

  9. orientdb 学习

    简介 OrientDB 是一款 NoSQL 数据库.是一种文档-图数据库.即:既具有文档数据库的特性,又具有图数据库的功能. 端口 2424  OrientDB 监听 二进制 访问的的端口 (即:通过 ...

最新文章

  1. 关于刘冬大侠Spring.NET系列学习笔记3的一点勘正
  2. nodeJs --- web服务器创建
  3. 算力“竞速”,企业AI落地的当务之急
  4. 鸿蒙 意识结晶,意识的无限性
  5. Linux密码文件passwd和shadow分析
  6. 第 17 章 Native SQL查询
  7. 阿里巴巴开源的通用缓存访问框架JetCache介绍
  8. 安装opencv3.4.0报错
  9. 五子棋 AI(AIpha-beta算法)
  10. java多线程图解_java多线程实例图解讲解
  11. 对Chrome自动发送邮件插件的改进
  12. mysql 导出表数据表结构
  13. stat---文件状态信息结构体
  14. bug3-自定义层的注意事项
  15. Jmeter(十九) 后置处理器JSON Extractor 提取json的多个值
  16. 客户的价值源于客户的流程
  17. 黑客帝国角色 之 尼奥解读
  18. 面向对象方式爬取知乎鸡汤
  19. 灵遁者散文小说集《从今往后》:永远都是开始
  20. 2019年南京大学计算机研究生复试分数线,南京大学2019年硕士研究生复试基本分数线...

热门文章

  1. 那些有意思的网站彩蛋
  2. 《计算机英语》第四版 Unit1-Unit8名词翻译答案
  3. 大数据应用开发工程师,主要负责的工作内容有哪些?
  4. Ehcache-xsi:noNamespaceSchemaLocation连接获取错误
  5. 一文清晰解读:数字化转型的行进路线与全景图
  6. 064.django之模型层单表查询
  7. 使用https://mail.google.com/登录GMail
  8. Python语法基础在线实验闯关_头歌实践教学平台
  9. 第二次绩效评估 - 智慧树软件团队
  10. evaluate函数