PHP socket_write 第一次工作,但是

标签 php sockets

我想通过一个用 PHP 创建的套接字将多条消息(每条消息动态创建)写入设备。第一条消息总是通过;但是,后续消息 通过。为了帮助我调试,请让我知道这个例子是否有问题:

        $socket= socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        socket_connect($socket, $ip, $port); 
        socket_write($socket, "message 1\r");
        socket_write($socket, "message 2\r");

最佳答案

您是否尝试过将回车符添加到 socket_write($socket, "message 1\r\n"); 到消息的末尾?在许多情况下,当使用缓冲区和流时,这似乎可以解决问题。

其他值得一试的东西:

//all suggestions rolled into one (including Chris' chr(0) - thanks for that one)
socket_write($socket, 'message 1'."\r\n".chr(0));
usleep(5);
socket_write($socket, 'Foobar'."\r\n".chr(0));

只需多花一点点时间来清除缓冲区就可以创造奇迹。

编辑

刚刚又灵机一动:您是否也尝试过使用可选的长度参数?

socket_write($socket, 'message 1'."\r\n".chr(0),strlen('message 1'."\r\n".chr(0)));

关于PHP socket_write 第一次工作,但是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558802/

相关文章:

php - MySQL 行消失(神秘)

sockets - 在 Golang 中,如何接收套接字绑定(bind)到特定地址/端口的多播数据包?

java - 如果您正在使用缓冲读取器读取整行,那么在套接字上设置超时是否有效?

sockets - zeromq 如何与 SSL 协同工作?

sockets - io.复制: How to know if a socket is closed or disconnected

php - file_get_contents 不输出 svg

PHP - 在指定时间禁用按钮

php - 如何在订票系统中预订门票?

php - MySQL 处理通过 AJAX 和 PHP 对喜欢/不喜欢系统进行投票

c# 使用套接字进行单元测试