本文實例講述了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程序設計有所幫助。