从PHP发送数组字节到套接字

I have a lamp and I can turn on/off by socket.I write a nodejs code and it run ok but now I dont want a node server to run and I want send it from php but it not working

I tried

    socket_write($socket,"\x57\x00\x00\x00\x01\x00",6);

but it not working

Here are working code in 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');
});

Is there any way to make same in php ?

I'm not really sure that I got it right but as far as I see your lightclient.write(lighton) should return a boolean. In PHP socket_write($socket, $bytes, $length) will only tell you how many bytes have been successfully passed to the socket. The output is an integer this time (or FALSE in case of an error). If I got your problem right you should check whether socket_write was successfull or not.