zoukankan      html  css  js  c++  java
  • 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=xiaohigh22@163.com&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方式请求时,使用什么符号来连接参数?&

  • 相关阅读:
    设计模式之适配器模式
    设计模式之装饰者模式
    设计模式之原型模式
    【转】SQL Server中的事务与锁
    【转修正】sql server行版本控制的隔离级别
    【转】数据库系统异常排查之DMV
    【转】SQLServerDBA十大必备工具---让生活轻松点
    Jekens 配置多项目SCM GitLab+Jenkins持续集成环境
    Jekens Source Code Management None 源码管理没有Git
    Spring容器事件、自定义事件
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/9517214.html
Copyright © 2011-2022 走看看