php通过socket套接字获取web服务器的响应内容

本文通过一个PHP脚本示例展示了如何使用TCP/IP协议建立连接并发送HTTP请求到指定服务器。该脚本首先定义了目标域名、路径及请求类型,接着获取服务器端口和IP地址,创建TCP/IP socket进行连接,并发送一个HTTP GET请求,最后读取响应并关闭连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
$url="www.baidu.com";  //域名
$path="/";  //路径
$type="GET"; //请求方法

error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* 获取端口号 */
$service_port = getservbyname('www', 'tcp');

/* 获取ip地址. */
$address = gethostbyname($url);

/* 创建 TCP/IP 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 "OK.\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = $type." ".$path." HTTP/1.1\r\n";
$in .= "Host: ".$url."\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Closing socket...";
socket_close($socket);
echo "OK.\n\n";
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值