curl socket fsockopen
socket fsockopen curl 这些个东西要怎么理解?他们之间有什么联系,有什么区别吗?还有那些参数要怎么理解啊?有什么好的资料吗? socket是一种连接的方式,比如用来连接接口。
如:
$fp= @fsockopen('地址','端口'); $command="" //发送的数据,你想要发什么数据,就在这里写,可以拼接起来。 if (!fwrite($fp, $command)) {exit('error');} $response='';//结果集 while(!feof($fp)) { $str = fgets($fp, 1024);//读取每行数据 $response .= $str; //读取的每行给结果集 } echo $response;//输出结果
可详细点不啊?
socket你可以理解是一种通信。
fsockopen('连接地址','端口号','错误代号','错误信息','超时');参数就是连接的地址
关于socket和curl的联系,就扯不上什么关系了
而curl的理解,比如:
通常我们在请求接口的时候,对方的数据可能都已经经过了多重的加密。
那么我们请求的时候,我们就得使用curl进行加密传输,因为通常的情况下我们是无法得知数据加密后的内容。
socket 是 TCP/IP 通讯协议的工具库,用于简化 TCP/IP 通讯程序的书写
fsockopen 是 socket 简易包装
curl 是 TCP/IP 通讯协议的又一种工具库
mg.bbs.csdn.net/upload/201308/28/1377657763_543717.jpg][/img],楼上说的我也是清楚的,但是具体的用法和里面的参数不是很明白,这些都是规定的么?
$out = "GET $path HTTP/1.1\r\n";
$out .= "Accept: */*\r\n";
$out .= "Referer: ".$siteurl."\r\n";
$out .= "Accept-Language: zh-cn\r\n";
$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cookie: $cookie\r\n\r\n"; 比如像这种
socket可以跟服务器(游戏,email,桌面软件)的交互,传递数据之类的!
socket是抽象的套接字,不属于PHP之类语言的层面
fsocket是PHP对socket的封装,C里面也有类似的封装
curl好像是PHP专属的一个类库,专门简化socket操作的,很多主机商屏蔽掉fsocket,但是支持curl,百度BAE也是这么干的
------------------------------------------------------AutoCSDN签名档------------------------------------------------------
码农场??码农播种代码、放牧思想的农场! $out = "GET $path HTTP/1.1\r\n";
$out .= "Accept: */*\r\n";
$out .= "Referer: ".$siteurl."\r\n";
$out .= "Accept-Language: zh-cn\r\n";
$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cookie: $cookie\r\n\r\n"; 比如像这种
这些请求头,不是规定的,关键看你的需求。
$out = "GET $path HTTP/1.1\r\n";
$out .= "Accept: */*\r\n";
$out .= "Referer: ".$siteurl."\r\n";
$out .= "Accept-Language: zh-cn\r\n";
$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cookie: $cookie\r\n\r\n"; 比如像这种
这些请求头,不是规定的,关键看你的需求。 这种需求因什么而来?
协议
既然是通讯,自然要有一个约定。值就是协议
不然我说俄语你说英语,怎么也说不到一起去的
socket 水泥、沙子,底层的东西
fsockopen 水泥预制件,可以用来搭房子
curl 毛坯房,自己装修一下就能住了
水泥、沙子不但可以修房子,还能修路、修桥、大型雕塑。socket也是,不但可以用于网页传输,还能传送其他东西,可以做聊天工具、下载器、ftp……几乎可以用网络传送的东西都能用它写出来,当然,需要掌握的知识也不少,例如建墙你就要知道怎么让墙笔直、不易倒、防冻、隔热等等都需要自己学
预制件你就不用管它是否笔直、结构如何、怎样隔热了,这些造的人帮你想好了,你想的就是怎样搭成你想要的形状就行。fsockopen就是,你可以忽略socket里面的creat, connect, send, recv等等函数的用法,直接就open了
毛坯房就更简单了,你装修就能住,最简单刷墙就行了,但想更舒适,就用更多更好的装修材料吧,但缺点就是??这是房子,你不能把它改造为渡河、交通的用途,只能住
curl也一样,各种连接什么的都帮你做好了,底层容错处理也做了,你就传参数给它就能得到你想要的结果,但缺点就是只能http / ftp,你想把它改成聊天工具,那就难难难了
socket 水泥、沙子,底层的东西
fsockopen 水泥预制件,可以用来搭房子
curl 毛坯房,自己装修一下就能住了
水泥、沙子不但可以修房子,还能修路、修桥、大型雕塑。socket也是,不但可以用于网页传输,还能传送其他东西,可以做聊天工具、下载器、ftp……几乎可以用网络传送的东西都能用它写出来,当然,需要掌握的知识也不少,例如建墙你就要知道怎么让墙笔直、不易倒、防冻、隔热等等都需要自己学
预制件你就不用管它是否笔直、结构如何、怎样隔热了,这些造的人帮你想好了,你想的就是怎样搭成你想要的形状就行。fsockopen就是,你可以忽略socket里面的creat, connect, send, recv等等函数的用法,直接就open了
毛坯房就更简单了,你装修就能住,最简单刷墙就行了,但想更舒适,就用更多更好的装修材料吧,但缺点就是??这是房子,你不能把它改造为渡河、交通的用途,只能住
curl也一样,各种连接什么的都帮你做好了,底层容错处理也做了,你就传参数给它就能得到你想要的结果,但缺点就是只能http / ftp,你想把它改成聊天工具,那就难难难了 这个真的很形象,谢谢啊