【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的本质更加接近。

发布了31 篇原创文章 · 获赞 52 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36552566/article/details/105189873