欢迎您来到,李雷博客 | PHP博客        登录  |  注册

PHP给TCP服务端发送指令【系列二】

更新:2025-03-08 21:21:59
人气:48
来源:本站原创
A+

在 PHP 中向 TCP 服务端发送指令可以借助socket相关函数来实现。下面详细介绍具体的实现步骤和示例代码。

// 服务端地址和端口
	$serverHost = '192.168.177.1';
	$serverPort = 65432;
	//(李雷博客原创:https://www.mdaima.com)
	
	// 要发送的指令
	$command = "restart";
	
	// 创建TCP套接字
	$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
	if ($socket === false) {
		echo "创建套接字失败: ". socket_strerror(socket_last_error()) . PHP_EOL;
		exit;
	}
	
	// 连接到服务端
	$result = socket_connect($socket, $serverHost, $serverPort);
	if ($result === false) {
		echo "连接服务端失败: ". socket_strerror(socket_last_error($socket)) . PHP_EOL;
		socket_close($socket);
		exit;
	}
	
	// 发送指令到服务端
	$bytesSent = socket_write($socket, $command, strlen($command));
	if ($bytesSent === false) {
		echo "发送指令失败: ". socket_strerror(socket_last_error($socket)) . PHP_EOL;
	} else {
		echo "成功发送 ". $bytesSent . " 字节的指令到服务端。" . PHP_EOL;
		// 接收服务端的响应(可选)
		$response = socket_read($socket, 1024);
		if ($response !== false) {
			echo "收到服务端响应: ". $response . PHP_EOL;
		} else {
			echo "接收服务端响应失败: ". socket_strerror(socket_last_error($socket)) . PHP_EOL;
		}
	}
	
	// 关闭套接字
	socket_close($socket);

代码解释

创建套接字:

socket_create(AF_INET, SOCK_STREAM, SOL_TCP):创建一个基于 IPv4 地址族、使用 TCP 协议的套接字。

连接服务端:

socket_connect($socket, $serverHost, $serverPort):尝试将套接字连接到指定的服务端地址和端口。

发送指令:

socket_write($socket, $command, strlen($command)):把指令数据发送给服务端,返回实际发送的字节数。

接收响应:

socket_read($socket, 1024):从服务端接收最多 1024 字节的数据。

关闭套接字:

socket_close($socket):关闭套接字,释放相关资源。

注意事项

要确保服务端地址和端口的正确性,并且服务端处于运行状态。

可根据实际需求调整接收数据的缓冲区大小。

若服务端响应数据量较大,可能需要多次调用socket_read函数来完整接收。

 

推荐的文章
# 发表我的评论
  /     /  
# 最近评论
暂时还没有评论,要不要说点什么?
  Ads by Google
  联系博主
Hello,本博客系统采用PHP和MySql开发,程序开发完全是因为个人爱好,是自己纯手写PHP源代码,未采用任何PHP框架!
QQ:858353007   微信号:lileihot123
网站地图
会员服务
关于我们
QQ:858353007
 
广告服务
加我微信
移动端访问
 
 
Copyright © 2014- 2025 www.mdaima.com All Rights Reserved.
李雷博客,专注PHP经验、PHP教程及PHP源代码开源下载分享的PHP博客!   ICP备案号:京ICP备10202169号-4