当前位置:首页 > 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

php实现tcp连接

$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 连接,需确保端口开放。
  • 处理网络错误时,应检查函数返回值并适当处理异常。

标签: phptcp
分享给朋友:

相关文章

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…

php无限分类的实现

php无限分类的实现

PHP无限分类的实现 无限分类是一种常见的树形结构数据组织方式,适用于商品分类、菜单管理、地区选择等场景。以下是几种实现方法: 递归实现法 递归是最直观的实现方式,通过函数自身调用来遍历子分类。数据…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php 路由实现的

php 路由实现的

PHP 路由实现方法 基于原生 PHP 实现路由 创建一个简单的路由解析器,通过解析 URL 路径来调用对应的控制器或函数。 // 定义路由表 $routes = [ '/' => '…

php 实现md5

php 实现md5

使用 PHP 内置函数实现 MD5 PHP 提供了 md5() 函数,可以直接计算字符串的 MD5 哈希值。该函数接受一个字符串参数,返回 32 字符的十六进制哈希值。 $string = "H…

php实现apk下载

php实现apk下载

实现APK下载的PHP代码 创建一个简单的PHP脚本来处理APK文件的下载请求,确保文件传输正确且安全。 <?php $file = 'path/to/your/app.apk'; if (f…