国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

客戶端使用socket_write()定時發(fā)送心跳以后,就不能使用socket_recv()接收workerman主動發(fā)送的數(shù)據(jù)

學海無涯

客戶端使用socket_write()定時發(fā)送心跳以后,就不能使用socket_recv()接收workerman主動發(fā)送的數(shù)據(jù):
我是使用客戶端主動發(fā)送數(shù)據(jù)給workerman的服務器端,下面是代碼

do{
    $buff = "";
    if((socket_recv($socket, $buf, 1024, MSG_PEEK)) != false)  chuli($buff);
        $cmd = '{"head":{"heart":"idle"}'."\n";
    if(socket_write($socket, $cmd, strlen($cmd))==false){ 
            echo 'SEND '.date("Y-m-d H:i:s")." ".$cmd."\n";
        connect();  
    }
    sleep(15);
}while(TRUE);

這個只能客戶端發(fā)送數(shù)據(jù),服務端回復一條數(shù)據(jù),當服務端主動發(fā)送一條數(shù)據(jù)的時候就無法通過socket_recv()來接收這條主動發(fā)送的數(shù)據(jù)了

5301 2 0
2個回答

six

if((socket_recv($socket, $buf, 1024, MSG_PEEK)) != false)
看了眼php手冊,感覺MSG_PEEK應該改成MSG_WAITALL

  • 學海無涯 2018-02-02

    還是不行,服務器發(fā)送的數(shù)據(jù)是可以接收到的,但不是經(jīng)過socket_recv()來接收的,而是直接輸出

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产+高潮+在线