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 ...
随机推荐
- allegro17.2 gerber 步骤
1.Manufacture -> NC -> Drill Customization... 先点击 Auto generate symbols,出来对话框后点击 YES .然后在Symbo ...
- 谷歌将一些弱小的库从安卓代码移除Google Removes Vulnerable Library from Android
Google this week released the November 2018 set of security patches for its Android platform, which ...
- java生成条形码工具类
package com.runtime.extend.utils.CodeCreate;import java.awt.Color;import java.awt.Font;import java.a ...
- mongodb和python交互
一.安装pymongo包 sudo pip install pymongo 二.新增数据: 增加一条: from pymongo import MongoClient client = MongoCl ...
- 2.第一个python 程序
第一个python程序 一..python程序的编写步骤 1.创建 xxx.py文件(文件名不要中文) 文件名要以py为扩展名,因为导入的时候其他扩展名会报错.如果不导入的情况可以不限制扩展名. 2 ...
- 原生js获取 一个dom元素距离页面可视区域的位置值 -- getBoundingClientRect
getBoundingClientRect() 这个方法返回一个矩形对象,包含四个属性:left.top.right和bottom.分别表示元素各边与页面上边和左边的距离. var box=docum ...
- Unity3D 粒子系统 属性
- 【003:使用SW4STM32不进入中断的原因】
系统环境: ubuntu 16.04 64bit开发环境:SW4STM32记录时间: 2017年07月01日联系方式: yexiaopeng1992@126.com背景: 在ubuntu下使用ST官方 ...
- ForkJoinPool
fork():开启一个新线程(或是重用线程池内的空闲线程),将任务交给该线程处理. join():等待该任务的处理线程处理完毕,获得返回值. ForkJoinPool 的每个工作线程都维护着一个工作队 ...
- sql 与 mysql 链接数据库