【问题标题】:Send array byte to socket from PHP从 PHP 向套接字发送数组字节
【发布时间】:2019-11-15 16:29:50
【问题描述】:

我有一盏灯,我可以通过套接字打开/关闭。我编写了一个 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中做同样的事情?

【问题讨论】:

    标签: php node.js socket.io


    【解决方案1】:

    我不确定我是否做对了,但据我所知,您的 lightclient.write(lighton) 应该返回一个布尔值。在 PHP 中,socket_write($socket, $bytes, $length) 只会告诉您有多少字节已成功传递给套接字。这次输出是一个整数(如果出现错误,则为 FALSE)。如果我解决了你的问题,你应该检查 socket_write 是否成功。

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 2014-07-23
      • 2011-02-28
      • 1970-01-01
      相关资源
      最近更新 更多