如何将他的Python脚本转换为PHP

时间:2016-02-28 02:32:47

标签: php python sockets

我已尽力而为,但我似乎无法得到它。对于一个小背景故事,我有一个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,所以显然我错过了一些东西。

1 个答案:

答案 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)。