【Socket API】实现一个简单的HTTP客户端调用

//首先创建一个Socket句柄
if (!($sock = socket_create(AF_INET, SOCK_STREAM, 0))) {
	echo socket_last_error();
	exit;
}

echo "创建Socket句柄 \n";

//连接到服务器的某个对接端口
if(!socket_connect($sock, 'wwww.example.com', 80)) {
	echo socket_last_error();
	exit;
}

echo "连接服务器 \n"//发送一个简单的http信息
$message = "GET /index.html HTTP/1.1 \r\n\r\n";

//发送数据至服务器
if (!socket_send($sock, $message, strlen($message), 0)) {
	echo socket_last_error();
	exit;
}

echo "请求发送成功 \n";

//接受客户端的响应
if(socket_recv($sock, $buf, 1024, MSG_WAITALL) === false) {
	echo socket_last_error();
	exit;
}

//输出服务器响应
echo $buf;

基本操作总结:

  1. 创建一个Socket句柄;
  2. 连接到服务器的接口;
  3. 发送HTTP消息;
  4. 发送数据到服务器;
  5. 接受到客户端的响应信息;
  6. 输出服务器的响应;

PHP开发者在编写HTTP应用的时候,一般使用的是curl扩展,curl扩展和PHP Socket包的区别在于curl扩展做了更多的抽象,完全的忽略了网络的存在,而PHP Socket包和底层的Socket API更加类似,灵活度更加强大,当然,对于TCP/IP的本质更加接近。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值