广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php socket和curl有什么不同
  • 746
分享到

php socket和curl有什么不同

phpsocketcurl 2015-11-29 06:11:06 746人浏览 无得
摘要

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php socket和curl有什么不同?php的curl和socket的区别首先说下啥是Socket:PHP使用berkely的socket库来创建他的连接,socke

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

php socket和curl有什么不同?

php的curl和socket的区别

首先说下啥是Socket

PHP使用berkely的socket库来创建他的连接,socket是一个数据结果,你可以通过这个socket来开启服务器和客户端的会话。服务器端一直处于监听状态,当一个客户端连接服务器,他就打开服务器端正在监听的一个端口进行会话。这时服务器端接收客户端的连接请求,那么就进行一次循环。现在这个客户端就能够发送信息到服务器,服务器也可以发送信息给客户端。

产生一个socket你一共需要三个变量:

一个协议
2、一个socket类型
3、一个公共协议类型

以下是对这三个变量的详细解释,大概了解下吧(但愿你能记得住偷笑)
协议:产生一个socket有三个协议供选择:

AF_INET 这个是使用比较广泛的产生socket的协议,使用tcp或者udp协议传输,使用ipv4地址
2、AF_INET6 显而易见哈,同上,不同的是使用ipv6地址
3、AF_UNIX 使用在unix或者linux机器上,这个很少使用,仅在服务器端和客户端均为unix或者linux系统上使用。

socket类型:
1、SOCK_STREAM 这个协议是按照顺序的、可靠的、数据完整的基于字节流的连接。这是一个使用最多的socket类型,这个socket是使用TCP来进行传输。
2、SOCK_DGRAM 这个协议是无连接的、固定长度的传输调用。该协议是不可靠的,使用UDP来进行它的连接。
3、SOCK_SEQPACKET 这个协议是双线路的、可靠的连接,发送固定长度的数据包进行传输。必须把这个包完整的接受才能进行读取。
4、SOCK_RAW 这个socket类型提供单一的网络访问,这个socket类型使用ICMP公共协议。(ping、traceroute使用该协议)
5、SOCK_RDM 这个类型是很少使用的,在大部分的操作系统上没有实现,它是提供给数据链路层使用,不保证数据包的顺序

公共协议类型:
1、ICMP (Internet Control Message Protocol)互联网控制报文协议,主要用在网关和主机上,用来检测网络状况和报告错误信息
2、TCP (Transmission Control Protocol) 传输控制协议,他是使用最广泛的协议,他能够保证数据包到达接收者那里,如果中途出现错误,那么此协议从新发送数据包。
3、UDP (User Datagram Protocol)用户数据包协议,他是无连接的,不可靠的数据传输协议。

好啦,你现在知道了产生一个socke需要三个元素,那么在php中socket_create()就需要三个参数,一个协议,一个socket类型,一个公共协议。如果创建成功,socket_create()返回一个socket资源类型,如果不成功,嘿嘿,那你会收到一个false.

CURL

cURL 是利用URL语法规定来传输文件和数据的工具。他支持Http、FTP、TELNET。

为啥要使用cURL呢?

因为,如果我们有时候想灵活的获取网页上的内容,例如处理coockies、验证、表单提交、文件上传等等等等。那么你就需要用到cURL.据说php有着功能强大的cURL库(因为偶也说不清强大在哪里啦,所以用了“据说”大笑)。

php使用cURL的选项基本步骤如下:
1、初始化
2、参数设置
3、页面内容获取或者操作
4、释放句柄

看看下面这个简单的例子吧。

<?php
//初始化curl
$ch = curl_init ();

//例如你想对百度进行某些操作
curl_setopt ( $ch, CURLOPT_URL, "http://www.baidu.com");
//现在看来你要向百度post数据
curl_setopt ( $ch, CURLOPT_POST, 1 );

curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_string );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
//得到操作返回结果
$result = curl_exec ( $ch );
//关闭curl句柄
curl_close ( $ch );

因为php的curl有很多操作,要都记住估计很困难,反正偶记不住啦,说些大家可能用的上的吧。

获取服务器的一些信息

<?php

//初始化curl
$ch = curl_init ();

curl_setopt ( $ch, CURLOPT_URL, "http://www.baidu.com");
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
curl_exec($ch);
$info = curl_getinfo($ch);

var_dump($info);

通过上面的例子,你将会获得如下信息:

“url” //资源网络地址
“content_type” //内容编码
“http_code” //HTTP状态码
“header_size” //header的大小
“request_size” //请求的大小
“filetime” //文件创建时间
“ssl_verify_result” //SSL验证结果
“redirect_count” //跳转技术
“total_time” //总耗时
“namelookup_time” //DNS查询耗时
“connect_time” //等待连接耗时
“pretransfer_time” //传输前准备耗时
“size_upload” //上传数据的大小
“size_download” //下载数据的大小
“speed_download” //下载速度
“speed_upload” //上传速度
“download_content_length”//下载内容的长度
“upload_content_length” //上传内容的长度
“starttransfer_time” //开始传输的时间
“redirect_time”//重定向耗时

利用curl你还可以做以下操作:

模拟页面的post操作
2.文件上传
3.HTTP 认证
4.FTP 上传
5.FQ术
6.回调函数
ps:
以上关于curl的大前提是你的php在安装编译时加了 --with-curlwrappers ,你可以通过phpinfo()操作来查看你是不是在编译时加了这个扩展库。
如果加载了这个扩展,你将能看见类似:

如果你没有这个扩展,你需要改一下php.ini文件,去掉extension=php_curl.dll前面的分号。

好啦,现在我们知道socket和curl是咋回事了,socket是一种数据结构,他可以用来在服务器和客户端进行对话。而curl是利用url语法规定来传输文件和数据的规定,支持很多协议,例如FTP,HTTP、TELNET等。

--结束END--

本文标题: php socket和curl有什么不同

本文链接: https://www.lsjlt.com/news/417.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php socket和curl有什么不同
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php socket和curl有什么不同?php的curl和socket的区别首先说下啥是socket:PHP使用berkely的socket库来创建他的连接,socke...
    99+
    2015-11-29
    php socket curl
  • php socket和curl有什么区别
    这篇文章主要讲解了“php socket和curl有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php socket和curl有什么区别”吧!php socket和curl的不同之...
    99+
    2023-06-25
  • php中socket和curl有什么区别
    这篇文章主要介绍php中socket和curl有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!socket是一种数据结构,可以用来在服务器和客户端进行对话。curl是利用url语法规定来传输文件和数据的规定,...
    99+
    2023-06-25
  • PHP中的include和require有什么不同
    这篇文章主要讲解了“PHP中的include和require有什么不同”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中的include和require有什么不同”吧!在PHP中,有两种...
    99+
    2023-06-20
  • PHP服务器nginx和apache有什么不同
    区别:1、 apache是同步多进程模型,一个连接对应一个进程,而nginx是异步的,多个连接可以对应一个进程,nginx的负载能力比apache高;2、apache适合处理动态请求,而nginx适合处理静态和反向;3、nginx配置简洁,...
    99+
    2022-08-11
    apache php nginx
  • PHP 和 Django 并发编程有什么不同?
    PHP 和 Django 是两种常见的 Web 开发框架,它们都支持并发编程。然而,它们在并发编程方面存在一些不同之处。在本文中,我们将讨论 PHP 和 Django 的并发编程的不同之处。 首先,PHP 支持多进程和多线程并发编程。多进程...
    99+
    2023-06-13
    django 并发 接口
  • Java和C#有什么不同
    小编给大家分享一下Java和C#有什么不同,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java和C#都提供了对网络的不同抽象层,编程人员可以使用不同的网络接口完...
    99+
    2023-06-03
  • ajax和javascript有什么不同
    这篇文章给大家介绍ajax和javascript有什么不同,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JavaScript的特点1.JavaScript主要用来向HTML页面添加交互行为。2.JavaScript可以...
    99+
    2023-06-14
  • C#和C++有什么不同
    本篇内容介绍了“C#和C++有什么不同”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在C语言中,资源管理是一个极为繁琐易错的工作,大多复杂的...
    99+
    2023-06-18
  • HashMap和Hashtable有什么不同
    HashMap和Hashtable有什么不同,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。线程安全两者最主要的区别在于Hashtable是线程安全,而HashM...
    99+
    2023-06-19
  • service和systemctl有什么不同
    这篇文章主要介绍了service和systemctl有什么不同的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇service和systemctl有什么不同文章都会有所收获,下面我们一起来看看吧。service命令...
    99+
    2023-06-27
  • DevOps和SRE有什么不同
    一、概念不同 DevOps是一种将开发和运维团队紧密集成在一起的实践方法,旨在提高软件开发和交付的效率和质量。DevOps强调自动化、持续集成和部署、监控和反馈等方面,以实现快速、可靠和可重复的软件开发和交付。 SRE(Site Relia...
    99+
    2023-10-29
    有什么不同 DevOps SRE
  • RabbitMQ和Kafka有什么不同
    这篇文章主要讲解了“RabbitMQ和Kafka有什么不同”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“RabbitMQ和Kafka有什么不同”吧! # ...
    99+
    2022-10-19
    rabbitmq kafka
  • relative和absolute有什么不同
    本文小编为大家详细介绍“relative和absolute有什么不同”,内容详细,步骤清晰,细节处理妥当,希望这篇“relative和absolute有什么不同”文章能帮助大家解决疑惑,下面跟着小编的思路慢...
    99+
    2022-10-19
    relative absolute
  • Java和JavaScript:有什么不同?
    Java和JavaScript这两个名字看似相似,但实际上它们是完全不同的编程语言。在本文中,我们将探讨Java和JavaScript的不同之处。 Java和JavaScript的起源 Java是由Sun Microsystems公司...
    99+
    2023-09-10
    javascript shell linux
  • Ubuntu和Fedora有什么不同
    本篇内容主要讲解“Ubuntu和Fedora有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu和Fedora有什么不同”吧!桌面概述Fedora提供了vanilla GNOME...
    99+
    2023-06-27
  • Java 和 JavaScript 有什么不同?
    Java 和 JavaScript 是两种编程语言,它们有着不同的用途和特点。本文将深入探讨 Java 和 JavaScript 的不同之处,帮助你更好地理解这两种语言。 Java 是一种面向对象的编程语言,最初由 Sun Microsys...
    99+
    2023-06-28
    文件 javascript numpy
  • Python3和Python2有什么不同
    今天就跟大家聊聊有关Python3和Python2有什么不同,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、打印时,py2需要可以不需要加括号,py3 需要python 2 :pr...
    99+
    2023-06-15
  • Java和JavaScript有什么相同点和不同点?
    Java和JavaScript是两种非常常见的编程语言,它们在开发应用程序和网站方面都有着广泛的应用。虽然它们的名字很相似,但它们有着不同的用途和特点。本文将探讨Java和JavaScript之间的相同点和不同点。 一、相同点 编程语言 ...
    99+
    2023-08-26
    javascript 数据类型 关键字
  • PHP和Bash编程中的算法有什么不同?
    算法是计算机编程中不可或缺的重要组成部分。无论是PHP还是Bash编程,算法都是实现各种功能的关键。然而,PHP和Bash编程中的算法存在一些不同。在本文中,我们将探讨这些不同之处,并通过演示代码来进一步说明。 编程语言的不同 PHP...
    99+
    2023-06-26
    并发 bash 编程算法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作