如何在php socket上发送OOB数据

时间:2013-11-08 19:41:30

标签: php sockets

我需要发送和接收OOB数据。

   do {
        $result = socket_write($rsServ, $sData, $BUFFER_SIZE);

        if (rand(0, 1)){
            $resultOOB = socket_send($rsServ, "!", 1, MSG_OOB);
            echo "Send OOB data\n";
        }

        if ($result === false) {
            $errormsg = socket_strerror(socket_last_error());
            echo $errormsg."\n";
        }
    }
    while ($result);

接收数据:

    do {
        if (socket_recv($rsSock, $tmp, 1, MSG_OOB)){
            echo "Receiving OOB data\n";
        }
        $result = socket_read($rsSock, $BUFFER_SIZE);

    } while ($result);

但是php给我写了警告信息: PHP警告:socket_recv():无法从套接字[22]读取:第84行/home/andrey/Project/050502_shlapkov/main.php中的参数无效

如何在PHP中定义出现的带外数据?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

socket_recv($rsSock, $tmp, 1, 0) 

而不是

socket_recv($rsSock, $tmp, 1, MSG_OOB)

第4个争论是int,但MSG_OOB你以前无法定义。