1

我需要发送和接收 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 中定义带外数据?

4

1 回答 1

0

你可以试试这个:

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

代替

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

第 4 个论点是 int,但MSG_OOB您之前无法定义。

于 2018-05-06T08:51:13.077 回答