PHP原生socket是指使用PHP语言自带的socket函数来进行网络通信的方式。PHP提供了一系列的socket函数,可以用来创建socket、连接服务器、发送和接收数据等操作。
下面是一个使用PHP原生socket实现简单的TCP客户端和服务器的例子:
服务器端代码:
<?php
// 创建socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket创建失败: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// 绑定地址和端口
if (!socket_bind($socket, '127.0.0.1', 8888)) {
echo "socket绑定失败: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
// 监听连接
if (!socket_listen($socket)) {
echo "socket监听失败: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
echo "服务器启动,等待客户端连接...\n";
// 接收连接
$clientSocket = socket_accept($socket);
if ($clientSocket === false) {
echo "socket接收连接失败: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
// 读取客户端发送的数据
$data = socket_read($clientSocket, 1024);
echo "收到客户端数据: " . $data . "\n";
// 发送响应数据给客户端
$response = "Hello, Client!";
socket_write($clientSocket, $response, strlen($response));
// 关闭socket
socket_close($clientSocket);
socket_close($socket);
?>
客户端代码:
<?php
// 创建socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket创建失败: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// 连接服务器
if (!socket_connect($socket, '127.0.0.1', 8888)) {
echo "socket连接失败: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
// 发送数据给服务器
$message = "Hello, Server!";
socket_write($socket, $message, strlen($message));
// 接收服务器响应的数据
$response = socket_read($socket, 1024);
echo "收到服务器响应: " . $response . "\n";
// 关闭socket
socket_close($socket);
?>
以上代码实现了一个简单的TCP客户端和服务器,服务器监听本地8888端口,客户端连接服务器并发送数据,服务器接收到数据后返回响应给客户端。可以通过运行以上代码来测试。
上一篇:PHP代码简单的
下一篇:PHP防止从URL输入
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站