douzhechi2435 2019-07-05 03:39
浏览 133

从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 ?

  • 写回答

1条回答 默认 最新

  • dtbiszu7724 2019-07-05 11:12
    关注

    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.

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘