PHP套接字通信(TCP/UDP)的一个示例分析
本文介绍了PHP套接字通信(TCP / UDP)方法:小心
1。在socket_bind,IP地址不能真实环地址,如127.0.0.1
2.server.php后台运行时使用nohup PHP server.php > / / / a.log VaR TMP 2 > 1
UDP模式
1)server.php
< PHP
/ / error_reporting(e_all);
(0)set_time_limit;
ob_implicit_flush();
$插座= socket_create(af_inet,sock_dgram,sol_udp);
如果($ = false){
回声socket_create()()失败:原因:。socket_strerror(socket_last_error())。;
}
好吧= socket_bind美元($插座,'202.85.218.133 ',11109);
如果($ = false){
回声socket_bind()()失败:原因:。socket_strerror(socket_last_error(合穴));
}
当(真){
= $;
$端口= 0;
socket_recvfrom($插座,1024, 0美元中,美元美元,港口);
echo buf;
(1000)usleep;
}
>
2)client.php
< PHP
袜子= socket_create美元(af_inet,sock_dgram,sol_udp);
味精=你好美元;
$ len = strlen($味精);
socket_sendto(美元美元美元的袜子,味精,len,0,'202.85.218.133 ',11109);
socket_close(美元的袜子);
>
二:tcp模式
1)server.php
< PHP
/ / error_reporting(e_all);
(0)set_time_limit;
ob_implicit_flush();
$插座= socket_create(af_inet,sock_stream,sol_tcp);
socket_bind($插座,'192.168.2.143 ',11109);
socket_listen(合穴);
为领受= socket_accept(合穴);
回声领受!;
而($ ACPT){
合的话= fgets(stdin);
socket_write(ACPT美元,美元的话);
听到socket_read美元=(美元承兑,1024);
回音听;
如果()= = $听到){
socket_shutdown($ ACPT);
打破;
}
(1000)usleep;
}
socket_close(合穴)
>
2)client.php
< PHP
$插座= socket_create(af_inet,sock_stream,sol_tcp);
对socket_connect美元($插座,'192.168.2.143 ',11109);
如果(!$ CON){ socket_close($插座);退出;}
链接;
当($ $){
$听= socket_read($插座,1024);
回音听;
合的话= fgets(stdin);
socket_write($插座,合的话);
如果($ = )再见{{ };}
}
socket_shutdown(合穴);
socket_close(美元的袜子);
>
更多对PHP相关内容感兴趣的读者可以看到本网站的主题:PHP套接字使用摘要
希望本文能对PHP程序设计有所帮助。