欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

求组socket fsockopen 的问题

程序员文章站 2024-01-22 10:53:16
...
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;//输出结果      


curl是可以通过url进行传输的,通常用这个来模拟某种动作,比如:模拟登录。

可详细点不啊?

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,你想把它改成聊天工具,那就难难难了 这个真的很形象,谢谢啊