php socket通信(tcp/udp)实例分析
本文实例讲述了phpsocket通信(tcp/udp)方法。分享给大家供大家参考,具体如下:
注意
1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1
2.server.php后台跑起来的时候nohupphpserver.php>/var/tmp/a.log2>&1&
一:udp方式
1)server.php
<?php //error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); $socket=socket_create(AF_INET,SOCK_DGRAM,SOL_UDP); if($socket===false){ echo"socket_create()failed:reason:".socket_strerror(socket_last_error())."\n"; } $ok=socket_bind($socket,'202.85.218.133',11109); if($ok===false){ echo"socket_bind()failed:reason:".socket_strerror(socket_last_error($socket)); } while(true){ $from=""; $port=0; socket_recvfrom($socket,$buf,1024,0,$from,$port); echo$buf; usleep(1000); } ?>
2)client.php
<?php $sock=socket_create(AF_INET,SOCK_DGRAM,SOL_UDP); $msg='hello'; $len=strlen($msg); socket_sendto($sock,$msg,$len,0,'202.85.218.133',11109); socket_close($sock); ?>
二:TCP方式
1)server.php
<?php //error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP); socket_bind($socket,'192.168.2.143',11109); socket_listen($socket); $acpt=socket_accept($socket); echo"Acpt!\n"; while($acpt){ $words=fgets(STDIN); socket_write($acpt,$words); $hear=socket_read($acpt,1024); echo$hear; if("bye\r\n"==$hear){ socket_shutdown($acpt); break; } usleep(1000); } socket_close($socket) ?>
2)client.php
<?php $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP); $con=socket_connect($socket,'192.168.2.143',11109); if(!$con){socket_close($socket);exit;} echo"Link\n"; while($con){ $hear=socket_read($socket,1024); echo$hear; $words=fgets(STDIN); socket_write($socket,$words); if($words=="bye\r\n"){break;} } socket_shutdown($socket); socket_close($sock); ?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《phpsocket用法总结》、《PHP基本语法入门教程》、《PHP错误与异常处理方法总结》及《php常用函数与技巧总结》
希望本文所述对大家PHP程序设计有所帮助。