本文实例讲述了PHP的Socket通信之UDP通信方法。分享给大家供大家参考。具体如下:
1.创建一简单的UDP服务器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//服务器信息
$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.简单的客户端
1
2
3
4
5
6
7
8
9
10
11
12
|
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 ;
|
希望本文所述对大家的php程序设计有所帮助。