Socket编程 之使用fsockopen()函数
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()函数的更多相关文章
- PHP Socket编程 之使用fsockopen()函数
Socket可以理解为两台计算机相互通信的通道. 用法:使用fsockopen()函数 具体用法详见上篇文章.函数的参数为URL.端口号.一个存放错误编号的变量.一个存放错误信息字符串的变量和超时等待 ...
- socket编程中客户端常用函数
1 常用函数 1.1 connect() int connect(int sockfd, const struct sockaddr *servaddr, socklen_taddrlen); 客 ...
- socket编程中服务器端常用函数 以及简单实现
1 常用函数 1.1 socket() int socket(int family, int type, int protocol); socket()打开一个网络通讯端口,如果成功的话,返回一个 ...
- c++ 网络编程(五) LINUX下 socket编程 多种I/O函数 -以及readv和writev函数用法
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9614056.html 一.多种I/O函数 前言:之前我们讲的数据传输一般Linux上用writ ...
- socket编程中客户端常用函数 以及简单实现
1 常用函数 1.1 connect() int connect(int sockfd, const struct sockaddr *servaddr, socklen_taddrlen); 客 ...
- socket编程相关的结构体和字节序转换、IP、PORT转换函数
注意:结构体之间不能直接进行强制转换, 必须先转换成指针类型才可以进行结构体间的类型转换, 这里需要明确的定义就是什么才叫强制转换. 强制转换是将内存中一段代码以另一种不同类型的方式进行解读, 因此转 ...
- socket编程:客户端与服务器间的连接以及各函数的用法
在认真的看UNP之前,一直被socket编程说的云里雾里,今天我要让大家从整天上认识socket编程,让我们知道socket编程的整个流程和各个函数的用法.这样:我们在写一些简单的socket编程时就 ...
- Socket编程(C语言实现):socket()函数英文翻译
最近开始研究使用Socket API来网络编程,想着把自己的感想.感悟写下来.我发现在编程之外还有不少概念性的东西要学习.我觉得应该有以下几点吧: 1.得了解下计算机网络的基本概念,如OSI的7层模型 ...
- php的socket编程(socket关键几个函数)
php的socket编程(socket关键几个函数) 一.总结 一句话总结: socket_create.socket_connect.socket_bind.socket_listen.socket ...
随机推荐
- 学习了clipboard复制剪切插件的使用
第一步:引入clipboard插件JS <script src="dist/clipboard.min.js"></script> 第二步:在HTML代码加 ...
- MATLAB绘制函数图
序言 Matlab可以根据用户给出的数据绘制相应的函数图.对于单个2D函数图,需要给出一个行向量x作为函数图上离散点集的横坐标,以及一个与x列数一样的横坐标y作为函数图上点集的纵坐标. 向量x和y的取 ...
- java中的类型转换
java中的类型转换分为两种 自动类型转换 要实现数据的自动类型转换必须同时满足下面两个条件 两种数据类型彼此兼容 目标类型的取值范围大于原类型范围 强制类型转换 当两种数据类型彼此不兼容,或者说目标 ...
- MongoDB下,启动服务时,出现“服务没有响应控制功能”解决方法
摘要:https://www.cnblogs.com/luoguixin/p/6291408.html 欢迎转载,若需转载请标明出处:https://www.cnblogs.com/luoguixin ...
- MongoDB在Windows系统下的安装和启动
版本选择MongoDB的版本命名规范如:x.y.z: y为奇数时表示当前版本为开发版,如:2.3.0.2.1.1: y为偶数时表示当前版本为稳定版,如:2.0.1.2.2.0: 目前官网上最新的版本为 ...
- dede织梦手机站m文件夹功能基础详解
织梦2015年6月8日更新后,就添加了很多针对手机移动端的设计,最大的设计就是添加了生成二维码的织梦标签和织梦手机模板功能,织梦更新后,默认的 default模板中就包含手机模板,所以我们可以给织梦网 ...
- MariaDB导入XXX.sql文件
使用的 MariaDB5.5.52 开启数据库服务: systemctl start mariadb 要使用该脚本,登录数据, mysql -u root -p 根据提示输入你安装数据库时需设置密码, ...
- oracle:SQL时间段
oracle: SQL时间段 CREATEDATE between to_date('" + startDate + " 00:00:00','yyyy-mm-dd hh24:mi ...
- dbf,Idx 文件格式
NDbfReaderEx about_indexes ntx file format
- vue.js把mounted里面的变量传到data里面
data(){ return{ crux:[] //声明下变量 } }, mounted:function(){ var cruxs = localStorage.historyItems.split ...