我已尽力而为,但我似乎无法得到它。对于一个小背景故事,我有一个WIFI RGB LED控制器接收器,可以控制我网络上的一些LED。
我有一个python脚本,可以在执行时成功打开它们。我试图将这个python脚本转换为php,但我还没有成功。
Python脚本:
//Connect socket to remote server
if(!socket_connect($sock , '192.168.1.6' , 5577))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not connect: [$errorcode] $errormsg \n");
}
echo "Connection established <br>";
$message = 'EF0177';
//Send the message to the server
if( ! socket_send ( $sock , $message , strlen($message) , 0))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not send data: [$errorcode] $errormsg \n");
}
echo "Message send successfully <br>";
$message = 'CC2333';
//Send the message to the server
if( ! socket_send ( $sock , $message , strlen($message) , 0))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not send data: [$errorcode] $errormsg \n");
}
echo "Message send successfully <br>";
就像我说的那样,python脚本可以工作。
这是我对php的尝试:
GroupBy
我的PHP脚本中没有任何错误,但它没有成功打开LED,所以显然我错过了一些东西。
答案 0 :(得分:1)
看来你的问题来自这两行:
var gulp = require('gulp'),
gulpTypescript = require('gulp-typescript')
browserSync = require('browser-sync');
var scripts = {
in : 'app/script/ts/*.*',
dest : 'app/script/js/'
}
gulp.task('typeScript', function () {
return gulp.src( scripts.in )
.pipe( gulpTypescript() )
.pipe( gulp.dest( scripts.dest ) );
});
gulp.task('browserSync', function () {
browserSync({
server: {
baseDir: 'app'
}
})
})
gulp.task('default', ['typeScript', 'browserSync'], function () {
gulp.watch([[scripts.in], ['typeScript']], browserSync.reload);
gulp.watch( ['app/*.html', 'app/styles/*.css'], browserSync.reload);
});
这些表达式的结果是3字节长的二进制数据 - 第一个的整数数据'EF0177'.decode('hex')
'CC2333'.decode('hex')
。
在PHP中,您只需发送文本(长度为6个字节)。
由于您只需将它们表示为带有十六进制转义码的字符串,您只需将PHP代码中的两条[0xef, 0x01, 0x77]
行替换为:
$message =
您发送给的服务器也可能希望您读取发送之间的数据(使用socket_recv
)。