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

php 原生socket

作者:当过家家——变成现实。   发布日期:2025-12-29   浏览:794

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输入

大家都在看

php session用法

php 定义常量

php soapclient

phpisset函数

php html转图片

php后端

php爬虫框架

php多线程与并发

php读取csv文件

php+mysql动态网站开发

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

Laravel 中文站