Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php socket

作者:淺墨   发布日期:2025-03-21   浏览:135

<?php
// 创建一个 PHP Socket 服务器的简单示例

// 创建一个 socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Socket created\n";
}

// 绑定 socket 到本地地址和端口
$result = socket_bind($socket, '127.0.0.1', 8080);
if ($result === false) {
    echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Socket bind successful\n";
}

// 开始监听连接
$result = socket_listen($socket, 3);
if ($result === false) {
    echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Socket listening\n";
}

// 接受客户端连接
$client = socket_accept($socket);
if ($client === false) {
    echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Client connected\n";
}

// 从客户端读取数据
$input = socket_read($client, 1024);
echo "Received data: $input";

// 向客户端发送数据
$output = "Hello from server!";
socket_write($client, $output, strlen($output));

// 关闭 socket
socket_close($client);
socket_close($socket);

?>

解释说明:

  1. 创建 Socket

    • 使用 socket_create() 函数创建一个新的 socket。参数分别为地址族(AF_INET 表示 IPv4)、类型(SOCK_STREAM 表示 TCP)和协议(SOL_TCP 表示 TCP 协议)。
  2. 绑定 Socket

    • 使用 socket_bind() 将 socket 绑定到指定的 IP 地址和端口(本例中为 127.0.0.1:8080)。
  3. 监听连接

    • 使用 socket_listen() 使 socket 进入监听状态,等待客户端连接。第二个参数表示最大等待队列长度。
  4. 接受连接

    • 使用 socket_accept() 接受客户端的连接请求,并返回一个新的 socket 用于与该客户端通信。
  5. 读取和写入数据

    • 使用 socket_read() 从客户端读取数据,使用 socket_write() 向客户端发送数据。
  6. 关闭 Socket

    • 使用 socket_close() 关闭 socket,释放资源。

这个示例展示了如何创建一个简单的 PHP Socket 服务器,监听并处理客户端连接。

上一篇:php数组添加元素

下一篇:php strlen

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站