多功能嵌入PHP执行的IOCP服务(TCP)

来源:互联网 发布:淘宝卖家暖心的寄语 编辑:程序博客网 时间:2024/04/30 12:19

多功能嵌入PHP执行的IOCP服务(TCP)

嵌入式php的tcp服务程序
VC2012开发 使用完成端口io模型 php版本为5.3.23
目前在完善阶段
欢迎大家试用并提出宝贵的意见功能:


嵌入php独立运行,启动后,便能用tcp协议直接调用脚本中的函数.
php-embed.ini为php的配置文件,可以自行修改.
默认端口为本机的1234端口,可以在设置中更改
可以单次运行(运行后就最小化,如果要结束只能结束进程),也可以注册为服务运行(支持多服务注册及调用)
如启动后tcp输入 ["test",1,2,4]回车 服务器执行后就返回 +ok:["1","2","4"]回车
最初设计这个的目的是为了在网络通信程序中达到敏捷开发,后来经过优化,执行效率及调试效率大大提升,功能也加了很多.
可以用windows自带的telnet来测试程序效果,注意每一个指令除了指定长度的如gzip 其他都是以输入回车符来执行的.
程序运行过程中编辑script.php文件之后不用重启服务,程序会自动重新加载脚本.

 

默认的输入会以php来嵌入执行,嵌入php执行的输入格式为json数组:
["test",1,2,4]就表示调用embed_test函数并传入3个参数,分别为数字1,2和4(调试功能)
["get_functions"]服务端就会返回所有嵌入式php指令及调用方法(调试功能)


服务程序中定义了很多的扩展处理类型,如:

压缩指令操作:
gzip 1000回车(输入1000字节的gzip数据)
 就可以传输gzip压缩了的指令来执行
regzip ["test",1,2,4]
 就会返回gzip压缩的返回值

文件上传及下载操作:
["checkfileexists","56faf021de7aa5a5c63eeae97cae83dd.jpg"]
 为检测56faf021de7aa5a5c63eeae97cae83dd.jpg这个文件是否已存在
["adduploadfile"]
 为增加一个上传文件,是为了后面的多线程上传功能,例如返回2013052914433687836523.tmp
uploadfile 2013052914433687836523.tmp 0 10000
 为上传2013052914433687836523.tmp文件(必须先调用adduploadfile增加文件) 从0字节开始上传10000个字节(支持多线程上传)
["uploadcompleted","2013052914433687836523.tmp","56faf021de7aa5a5c63eeae97cae83dd","jpg",297576]
 为告诉服务器文件上传完了,并发送文件md5和服务端比对,服务端会以md5来作为索引名
downloadfile 56faf021de7aa5a5c63eeae97cae83dd.jpg 0 10000
 为下载56faf021de7aa5a5c63eeae97cae83dd.jpg文件 从0字节开始下载10000个字节(支持多线程下载)

数据广播操作:
listenbroadcast streambctest
 为监听一个名为streambctest的广播,之后输入的内容都会被当成心跳包保持连接,服务端会一直返回监听的数据内容
createbroadcast streambctest
 为建立一个名为streambctest的广播传输,之后输入的内容会即时的送达到所有监听广播的连接
createcommandbc commandbctest
 为建立一个名为commandbctest的广播传输,之后输入的内容,以\n为一条完整指令,转发到所有监听广播的连接
sendcmdbc commandbctest 1234567890test
 为给名为commandbctest的广播发送单条指令 内容为 1234567890test,消息会立即送达到监听广播的连接

web的当前状态查看器:
浏览器中以http打开本机绑定的端口,服务程序会自动生成当前所有连接的详细列表,包括每个连接的类型,每个连接的日志,很详细(调试功能)

文件的详细日志:
程序目录下会保存一个LOG文件,为服务运行后所产生的所有日志,可供调试查看(调试功能)

flash跨域的安全策略处理:
服务程序加入了flash跨域的安全策略处理,可以把本服务作为flash的整合服务程序,亦可放到843端口独立运行.

 

 下载地址:

http://download.csdn.net/detail/phoenix_/5617215

原创粉丝点击