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

get方式:

client.php

 <?php
//创建连接
$fp=fsockopen('localhost',80,$error,$errstr,10); //检测
if (!$fp){
echo $errstr;die;
} //拼接http请求报文
$http=''; //请求报文包括3部分 请求行 请求头 请求体
$http.="GET /phpStudy/http/server.php?username=huahua HTTP1.1\r\n"; //请求头信息
$http.="Host:localhost\r\n";
$http.="Connection:close\r\n\r\n"; //请求体:无 //发送请求
fwrite($fp,$http); //获取结果
$res='';
while(!feof($fp)){
$res.=fgets($fp);
} //输出内容
echo $res;

server.php

 <?php
//打印$_POST检测参数有没有过来
var_dump($_POST); //打印cookie内容
// var_dump($_COOKIE); //打印server的内容
// var_dump($_SERVER); //打印$_GET
// var_dump($_GET); //打印$GLOBALS
var_dump($GLOBALS);

post方式:

post.php

 <?php
//创建连接
$fp=fsockopen('localhost',80,$errno,$errstr,10); //检测
if (!$fp){
echo $errstr;die;
} //拼接http请求报文
$http=''; //请求报文包括3部分 请求行 请求头 请求体
$http.="POST /phpStudy/http/server.php HTTP/1.1\r\n"; //请求头信息
$http.="Host:localhost\r\n";
$http.="Connection:close\r\n";
$http.="Cookie:username=admin;uid=200\r\n";
$http.="User-agent:firefox-chrome-safari-ios-android\r\n";
$http.="Content-type:application/x-www-form-urlencoded\r\n";
$http.="Content-length:39\r\n\r\n"; //请求体
$http.="email=xiaohigh22@163.com&username=admin\r\n"; //发送请求
fwrite($fp,$http); //获取结果
$res='';
while(!feof($fp)){
$res.=fgets($fp);
} //输出内容
echo $res;

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

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

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

Socket编程 之使用fsockopen()函数的更多相关文章

  1. PHP Socket编程 之使用fsockopen()函数

    Socket可以理解为两台计算机相互通信的通道. 用法:使用fsockopen()函数 具体用法详见上篇文章.函数的参数为URL.端口号.一个存放错误编号的变量.一个存放错误信息字符串的变量和超时等待 ...

  2. socket编程中客户端常用函数

    1 常用函数 1.1   connect() int connect(int sockfd, const struct sockaddr *servaddr, socklen_taddrlen); 客 ...

  3. socket编程中服务器端常用函数 以及简单实现

    1 常用函数 1.1   socket() int socket(int family, int type, int protocol); socket()打开一个网络通讯端口,如果成功的话,返回一个 ...

  4. c++ 网络编程(五) LINUX下 socket编程 多种I/O函数 -以及readv和writev函数用法

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9614056.html 一.多种I/O函数 前言:之前我们讲的数据传输一般Linux上用writ ...

  5. socket编程中客户端常用函数 以及简单实现

    1 常用函数 1.1   connect() int connect(int sockfd, const struct sockaddr *servaddr, socklen_taddrlen); 客 ...

  6. socket编程相关的结构体和字节序转换、IP、PORT转换函数

    注意:结构体之间不能直接进行强制转换, 必须先转换成指针类型才可以进行结构体间的类型转换, 这里需要明确的定义就是什么才叫强制转换. 强制转换是将内存中一段代码以另一种不同类型的方式进行解读, 因此转 ...

  7. socket编程:客户端与服务器间的连接以及各函数的用法

    在认真的看UNP之前,一直被socket编程说的云里雾里,今天我要让大家从整天上认识socket编程,让我们知道socket编程的整个流程和各个函数的用法.这样:我们在写一些简单的socket编程时就 ...

  8. Socket编程(C语言实现):socket()函数英文翻译

    最近开始研究使用Socket API来网络编程,想着把自己的感想.感悟写下来.我发现在编程之外还有不少概念性的东西要学习.我觉得应该有以下几点吧: 1.得了解下计算机网络的基本概念,如OSI的7层模型 ...

  9. php的socket编程(socket关键几个函数)

    php的socket编程(socket关键几个函数) 一.总结 一句话总结: socket_create.socket_connect.socket_bind.socket_listen.socket ...

随机推荐

  1. 3、配置XShell上传文件

    1.yum   -y  install  lrzsz(安装 lrzsz) 2.rz -y(会弹出选择文件框,选择上传文件)

  2. 安卓系统广播暴露设备信息-Android System Broadcasts Expose Device Information

    Android device details are being exposed to running applications via Wi-Fi broadcasts in the mobile ...

  3. RAxML安装

    1.下载解压 $ wget https://codeload.github.com/stamatak/standard-RAxML/zip/master -O standard-RAxML-maste ...

  4. VS2008生成解决方案卡顿、龟速

    1.工具-选项-项目和解决方案-MS BUILD 项目生成输出详细信息中选择“诊断” 2.进入.NET环境的安装位置:C:\WINDOWS\Microsoft.NET\Framework\v3.5 , ...

  5. linux下如何查看某软件是否已安装

      因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了.总结起来就是这样几类: 1.rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm - ...

  6. STM32F103引脚功能定义

  7. laravel 自动加载 自定义的文件/辅助函数

    需求 在 laravel 中自定义了一些 辅助函数,想要laravel框架自动加载这些函数 实现 将自定义的辅助函数放在helpers.php文件中,如下: 在compsoer.json 的 auto ...

  8. tab切换的效果——仿照今日头条APP的切换效果

    说点废话;不知道是哪一版本起头条的tab切换效果就变了,一直琢磨着这个事,去度娘那里也没有什么结果:正好这两天有空就尝试做了一下:用前端的技术来实现: 先看效果吧:上面的tab随着slide滑动,上面 ...

  9. Java面试题整理---网络篇

    1.BIO.AIO和NIO的概念及区别? 2.什么是长连接和短连接? 3.http1.0.http1.1和http2.0的区别? 4.https和http的区别?   5.https的工作原理?   ...

  10. sai u 2016

    再过20分钟,我就要结束2016年的工作回家过春节了.真是难过的一天啊,从来没有今天那么感受深刻,那么嫌弃时间太慢,没有归家心似箭,没有近乡情怯,只是好想,呵呵,来个午睡,来场电影,来点小说,哈哈哈. ...