我有一盏灯,我可以通过套接字打开/关闭。我编写了一个nodejs代码,它可以正常运行,但是现在我不希望节点服务器运行,我想从php发送它,但它不起作用
我尝试了
socket_write($socket,"\x57\x00\x00\x00\x01\x00",6);
但不起作用
这是nodejs中的工作代码
var lighton = new Buffer([0x57, 0x00, 0x00, 0x00, 0x01, 0x00]);
var lightoff = new Buffer([0x57, 0x00, 0x00, 0x00, 0x00]);
var lightclient = new net.Socket();
lightclient.connect(20000, '10.0.0.221', function () {
lightclient.write(lighton);
setTimeout(function () {
lightclient.setNoDelay(false);
lightclient.write(lightoff);
setTimeout(()=> lightclient.destroy(), 0);
}, 1000);
lightclient.on('error', function (err) {
console.log('Error : ', err);
});
lightclient.on('close', function () {
console.log('socket closed');
});
有什么办法可以在php中使它相同吗?
答案 0 :(得分:0)
我不确定自己是否正确,但据我所知,您的lightclient.write(lighton)
应该返回布尔值。在PHP中,socket_write($socket, $bytes, $length)
仅告诉您已成功将多少字节传递给套接字。这次的输出是整数(如果出现错误,则为FALSE)。如果我没问题,您应该检查socket_write是否成功。