5
if(socket_recv ( $sock , $buf , 2045, MSG_WAITALL ) === FALSE)
{
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);        
    die("Could not receive data: [$errorcode] $errormsg <br>");
}
echo $buf;

上記の関数からは完全なメッセージが表示されないため、次のように変数 $buf の最大長を取得しようとしました

socket_recv ( $sock 、 $buf 、 strlen($buf) 、 MSG_WAITALL )

しかし、動作しません。親切に私を助けてください

thxとよろしく、

4

1 に答える 1

4

ループで応答を受け取る必要があります

$received;
while(socket_recv($sock, $buf, 1024, 0) >= 1)
{
    $received .= $buf;
}
于 2012-09-19T10:16:18.240 に答える