当前位置:首页 > PHP教程 > php高级应用 > 列表

php socket通信(tcp/udp)实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-09 23:13:26 浏览: 评论:0 

这篇文章主要介绍了php socket通信(tcp/udp)方法,结合实例形式分析了基于socket实现tcp与udp通信的相关技巧,需要的朋友可以参考下。

本文实例讲述了php socket通信(tcp/udp)方法,分享给大家供大家参考,具体如下:

注意

1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1

2.server.php后台跑起来的时候nohup php server.php > /var/tmp/a.log 2>&1 &

一: udp 方式

1) server.php

  1. <?php 
  2. //error_reporting( E_ALL ); 
  3. set_time_limit( 0 ); 
  4. ob_implicit_flush(); 
  5. $socket = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP ); 
  6. if ( $socket === false ) { 
  7.   echo "socket_create() failed:reason:" . socket_strerror( socket_last_error() ) . "\n"
  8. $ok = socket_bind( $socket'202.85.218.133', 11109 ); 
  9. if ( $ok === false ) { 
  10.   echo "socket_bind() failed:reason:" . socket_strerror( socket_last_error( $socket ) ); 
  11. while ( true ) { 
  12.   $from = ""
  13.   $port = 0; 
  14.   socket_recvfrom( $socket$buf,1024, 0, $from$port ); 
  15.   echo $buf
  16.   usleep( 1000 ); 
  17. ?> 

2) client.php

  1. <?php 
  2. $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); 
  3. $msg = 'hello'
  4. $len = strlen($msg); 
  5. socket_sendto($sock$msg$len, 0, '202.85.218.133', 11109); 
  6. socket_close($sock); 
  7. ?> 

二: TCP 方式

1)server.php

  1. <?php 
  2. //error_reporting( E_ALL ); 
  3. set_time_limit( 0 ); 
  4. ob_implicit_flush(); 
  5. $socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP ); 
  6. socket_bind( $socket'192.168.2.143', 11109 ); 
  7. socket_listen($socket); 
  8. $acpt=socket_accept($socket); 
  9. echo "Acpt!\n"
  10. while ( $acpt ) { 
  11.   $words=fgets(STDIN); 
  12.   socket_write($acpt,$words); 
  13.   $hear=socket_read($acpt,1024); 
  14.   echo $hear
  15.   if("bye\r\n"==$hear){ 
  16.     socket_shutdown($acpt); 
  17.     break
  18.   } 
  19.   usleep( 1000 ); 
  20. socket_close($socket
  21. ?> 

2) client.php

  1. <?php 
  2. $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
  3. $con=socket_connect($socket,'192.168.2.143',11109); 
  4. if(!$con){socket_close($socket);exit;} 
  5. echo "Link\n"
  6. while($con){ 
  7.     $hear=socket_read($socket,1024); 
  8.     echo $hear
  9.     $words=fgets(STDIN); 
  10.     socket_write($socket,$words); 
  11.     if($words=="bye\r\n"){break;} 
  12. socket_shutdown($socket); 
  13. socket_close($sock); 
  14. ?>

Tags: socket php通信 tcp udp

分享到: