用PHP的socket实现客户端到服务端的通信实例详解

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了用PHP的socket实现客户端到服务端的通信实例详解脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、server.PHP服务端:

<PRe class="brush:PHp;"> <>PHP error_reporting(E_ALL); set_time_limit(0); ob_implicIT_flush(); //本地IP $address = 'localhost'; //设置用111端口进行通信 $port = 111; //创建SOCKET if (($sock = socket_create(AF_inet,SOCK_STREam,SOL_TCP)) < 0)="" {="" echo="" "socket创建失败原因="" "="" .="" socket_strerror($sock)="" .="" "\n";="" }="">

if (($ret = socket_bind($sock,$address,$port)) < 0) {
echo "创建套接字失败原因 " . socket_strerror($ret) . "\n";
}
//监听
if (($ret = socket_listen($sock,5)) < 0) {
echo "监听失败原因 " . socket_strerror($ret) . "\n";
}
do {
//接收命令
if (($msgsock = @socket_accept($sock)) < 0) {
echo "命令接收失败原因: " . socket_strerror($msgsock) . "\n";
break;
}
$msg = "\nPHP test Server. \n" ."用quit,shutdown,sun...等命令测试.\n";

@socket_write($msgsock,$msg,strlen($msg));

do {
if (false === ($buf = @socket_read($msgsock,2048,PHP_NORMAL_READ))) {
echo "socket_read() failed: reason: " . socket_strerror($ret) . "\n";
break 2;
}
if (!$buf = trim($buf)) {
continue;
}
if ($buf == 'quit') {
break;
}
if ($buf == 'shutdown') {
socket_close($msgsock);
break 2;
}
if ($buf == 'sun') {
echo'what are you doing?';
}
$talkback = "Backinformation : '$buf'.\n";
socket_write($msgsock,$talkback,strlen($talkback));
echo "$buf\n";
} while (true);

socket_close($msgsock);

} while (true);

socket_close($sock);
?>

脚本宝典总结

以上是脚本宝典为你收集整理的用PHP的socket实现客户端到服务端的通信实例详解全部内容,希望文章能够帮你解决用PHP的socket实现客户端到服务端的通信实例详解所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。