Socket编程 之使用fsockopen()函数

Posted 8013-cmf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Socket编程 之使用fsockopen()函数相关的知识,希望对你有一定的参考价值。

fsockopen函数:初始化一个套接字连接到指定主机(hostname

get方式:

client.php

 1 <?php
 2 //创建连接
 3 $fp=fsockopen(‘localhost‘,80,$error,$errstr,10);
 4 
 5 //检测
 6 if (!$fp){
 7     echo $errstr;die;
 8 }
 9 
10 //拼接http请求报文
11 $http=‘‘;
12 
13 //请求报文包括3部分 请求行 请求头 请求体
14 $http.="GET /phpStudy/http/server.php?username=huahua HTTP1.1
";
15 
16 //请求头信息
17 $http.="Host:localhost
";
18 $http.="Connection:close

";
19 
20 //请求体:无
21 
22 //发送请求
23 fwrite($fp,$http);
24 
25 //获取结果
26 $res=‘‘;
27 while(!feof($fp)){
28     $res.=fgets($fp);
29 }
30 
31 //输出内容
32 echo $res;

 

server.php

 1 <?php
 2 //打印$_POST检测参数有没有过来
 3 var_dump($_POST);
 4 
 5 //打印cookie内容
 6 // var_dump($_COOKIE);
 7 
 8 //打印server的内容
 9 // var_dump($_SERVER);
10 
11 //打印$_GET
12 // var_dump($_GET);
13 
14 //打印$GLOBALS
15     var_dump($GLOBALS);

post方式:

post.php

 1 <?php
 2 //创建连接
 3 $fp=fsockopen(‘localhost‘,80,$errno,$errstr,10);
 4 
 5 //检测
 6 if (!$fp){
 7     echo $errstr;die;
 8 }
 9 
10 //拼接http请求报文
11 $http=‘‘;
12 
13 //请求报文包括3部分 请求行 请求头 请求体
14 $http.="POST /phpStudy/http/server.php HTTP/1.1
";
15 
16 //请求头信息
17 $http.="Host:localhost
";
18 $http.="Connection:close
";
19 $http.="Cookie:username=admin;uid=200
";
20 $http.="User-agent:firefox-chrome-safari-ios-android
";
21 $http.="Content-type:application/x-www-form-urlencoded
";
22 $http.="Content-length:39

";
23 
24 //请求体
25 $http.="[email protected]&username=admin
";
26 
27 //发送请求
28 fwrite($fp,$http);
29 
30 //获取结果
31 $res=‘‘;
32 while(!feof($fp)){
33     $res.=fgets($fp);
34 }
35 
36 //输出内容
37 echo $res;

问题1:返回内容我们用什么?echo

问题2:请求体包括哪3部分? 行 头 体

问题3:使用post方式请求时,使用什么符号来连接参数?&

 

以上是关于Socket编程 之使用fsockopen()函数的主要内容,如果未能解决你的问题,请参考以下文章

PHP fsockopen模拟POST/GET方法

socket_create 与 fsockopen php

fsockopen以Socket方式模拟HTTP下载文件

PHP Socket 编程之9个主要函数的使用之测试案例

php fsockopen 函数在哪里定义?

UDP之socket编程