本文实例讲述了PHP的Socket通信之UDP通信方法。分享给大家供大家参考。具体如下:aKsHTML5中文学习网 - HTML5先行者学习网
1.创建一简单的UDP服务器aKsHTML5中文学习网 - HTML5先行者学习网
?aKsHTML5中文学习网 - HTML5先行者学习网
18//服务器信息aKsHTML5中文学习网 - HTML5先行者学习网
$server = 'udp://127.0.0.1:9998';aKsHTML5中文学习网 - HTML5先行者学习网
//消息结束符号aKsHTML5中文学习网 - HTML5先行者学习网
$msg_eof = "/n";aKsHTML5中文学习网 - HTML5先行者学习网
$socket = stream_socket_server($server, $errno, $errstr, STREAM_SERVER_BIND);aKsHTML5中文学习网 - HTML5先行者学习网
if (!$socket) {aKsHTML5中文学习网 - HTML5先行者学习网
die("$errstr ($errno)");aKsHTML5中文学习网 - HTML5先行者学习网
}aKsHTML5中文学习网 - HTML5先行者学习网
do {aKsHTML5中文学习网 - HTML5先行者学习网
//接收客户端发来的信息aKsHTML5中文学习网 - HTML5先行者学习网
$inMsg = stream_socket_recvfrom($socket, 1024, 0, $peer);aKsHTML5中文学习网 - HTML5先行者学习网
//服务端打印出相关信息aKsHTML5中文学习网 - HTML5先行者学习网
echo "Client : $peer/n";aKsHTML5中文学习网 - HTML5先行者学习网
echo "Receive : {$inMsg}";aKsHTML5中文学习网 - HTML5先行者学习网
//给客户端发送信息aKsHTML5中文学习网 - HTML5先行者学习网
$outMsg = substr($inMsg, 0, (strrpos($inMsg, $msg_eof))).' -- '.date("D M j H:i:s Y/r/n");aKsHTML5中文学习网 - HTML5先行者学习网
stream_socket_sendto($socket, $outMsg, 0, $peer);aKsHTML5中文学习网 - HTML5先行者学习网
} while ($inMsg !== false);aKsHTML5中文学习网 - HTML5先行者学习网
2.简单的客户端aKsHTML5中文学习网 - HTML5先行者学习网
?aKsHTML5中文学习网 - HTML5先行者学习网
12function udpGet($sendMsg = '', $ip = '127.0.0.1', $port = '9998'){aKsHTML5中文学习网 - HTML5先行者学习网
$handle = stream_socket_client("udp://{$ip}:{$port}", $errno, $errstr);aKsHTML5中文学习网 - HTML5先行者学习网
if( !$handle ){aKsHTML5中文学习网 - HTML5先行者学习网
die("ERROR: {$errno} - {$errstr}/n");aKsHTML5中文学习网 - HTML5先行者学习网
}aKsHTML5中文学习网 - HTML5先行者学习网
fwrite($handle, $sendMsg."/n");aKsHTML5中文学习网 - HTML5先行者学习网
$result = fread($handle, 1024);aKsHTML5中文学习网 - HTML5先行者学习网
fclose($handle);aKsHTML5中文学习网 - HTML5先行者学习网
return $result;aKsHTML5中文学习网 - HTML5先行者学习网
}aKsHTML5中文学习网 - HTML5先行者学习网
$result = udpGet('Hello World');aKsHTML5中文学习网 - HTML5先行者学习网
echo $result;aKsHTML5中文学习网 - HTML5先行者学习网
aKsHTML5中文学习网 - HTML5先行者学习网
希望本文所述对大家的php程序设计有所帮助。aKsHTML5中文学习网 - HTML5先行者学习网
aKsHTML5中文学习网 - HTML5先行者学习网