当前位置:首页 > PHP

php实现tcp连接

2026-02-16 02:26:40PHP

PHP 实现 TCP 连接

使用 socket_createsocket_connect 函数

创建一个 TCP 客户端连接需要使用 socket_createsocket_connect 函数。以下是一个简单的示例:

$host = '127.0.0.1';
$port = 8080;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    die("Socket creation failed: " . socket_strerror(socket_last_error()));
}

$connected = socket_connect($socket, $host, $port);
if ($connected === false) {
    die("Connection failed: " . socket_strerror(socket_last_error()));
}

echo "Connected to {$host}:{$port}\n";

socket_close($socket);

使用 stream_socket_client 函数

另一种更简单的方法是使用 stream_socket_client 函数:

$host = '127.0.0.1';
$port = 8080;

$socket = stream_socket_client("tcp://{$host}:{$port}", $errno, $errstr, 30);
if (!$socket) {
    die("Connection failed: {$errstr} ({$errno})");
}

echo "Connected to {$host}:{$port}\n";

fclose($socket);

发送和接收数据

在建立连接后,可以使用 socket_writesocket_readfwritefread 来发送和接收数据:

$message = "Hello, Server!";

// 使用 socket_write 发送数据
socket_write($socket, $message, strlen($message));

// 使用 socket_read 接收数据
$response = socket_read($socket, 1024);
echo "Server response: {$response}\n";

// 或者使用 fwrite 和 fread
fwrite($socket, $message);
$response = fread($socket, 1024);
echo "Server response: {$response}\n";

创建 TCP 服务器

如果需要创建一个 TCP 服务器,可以使用以下代码:

$host = '127.0.0.1';
$port = 8080;

$server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($server, $host, $port);
socket_listen($server);

echo "Server listening on {$host}:{$port}\n";

$client = socket_accept($server);
$message = "Hello, Client!";
socket_write($client, $message, strlen($message));

socket_close($client);
socket_close($server);

使用 stream_socket_server 创建服务器

另一种方法是使用 stream_socket_server

$host = '127.0.0.1';
$port = 8080;

$server = stream_socket_server("tcp://{$host}:{$port}", $errno, $errstr);
if (!$server) {
    die("Server creation failed: {$errstr} ({$errno})");
}

echo "Server listening on {$host}:{$port}\n";

$client = stream_socket_accept($server);
fwrite($client, "Hello, Client!\n");
fclose($client);
fclose($server);

注意事项

  • 确保 PHP 已启用 sockets 扩展(可通过 php -m 查看)。
  • 防火墙或安全组可能会阻止 TCP 连接,需确保端口开放。
  • 处理网络错误时,应检查函数返回值并适当处理异常。

php实现tcp连接

标签: phptcp
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php实现接口

php实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不实现具体功能。类可以实现一个或多个接口,并必须实现接口中定义的所有方法。 定义接口 接口使用 inte…

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query…