略微加速

略速 - 互联网笔记

PHP的Socket通信之UDP篇

2021-12-22 leiting (4349阅读)

标签 PHP

1.创建一简单的UDP服务器

//服务器信息 

$server = 'udp://127.0.0.1:9998'; 

//消息结束符号 

$msg_eof = "\n"; 

$socket = stream_socket_server($server, $errno, $errstr, STREAM_SERVER_BIND); 

if (!$socket) { 

    die("$errstr ($errno)"); 

} 

   

do { 

    //接收客户端发来的信息 

    $inMsg = stream_socket_recvfrom($socket, 1024, 0, $peer); 

    //服务端打印出相关信息 

    echo "Client : $peer\n"; 

    echo "Receive : {$inMsg}"; 

    //给客户端发送信息 

    $outMsg = substr($inMsg, 0, (strrpos($inMsg, $msg_eof))).' -- '.date("D M j H:i:s Y\r\n"); 

    stream_socket_sendto($socket, $outMsg, 0, $peer); 

       

} while ($inMsg !== false);

 

2.简单的客户端

function udpGet($sendMsg = '', $ip = '127.0.0.1', $port = '9998'){

    $handle = stream_socket_client("udp://{$ip}:{$port}", $errno, $errstr);

    if( !$handle ){

        die("ERROR: {$errno} - {$errstr}\n");

    }

    fwrite($handle, $sendMsg."\n");

    $result = fread($handle, 1024);

    fclose($handle);

    return $result;

}

 

$result = udpGet('Hello World');

echo $result;

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3