Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过只读取有用的数据后关闭套接字,我真的节省了带宽吗?_Php_Sockets_Tcp_Stream - Fatal编程技术网

Php 通过只读取有用的数据后关闭套接字,我真的节省了带宽吗?

Php 通过只读取有用的数据后关闭套接字,我真的节省了带宽吗?,php,sockets,tcp,stream,Php,Sockets,Tcp,Stream,我的意思是,我有一个应用程序,第一步只需要获得Web服务器中某些图像的大小,为此,我使用了fsockopen。读取内容长度标题后,我关闭套接字 这个问题可能很傻,但我对tcp协议和整个互联网数据传输过程知之甚少,甚至一无所知,也不知道文件是如何通过这个套接字进入我的php应用程序的,所以我想知道的是:在读取整个文件之前,我是通过关闭套接字来节省带宽,还是仍然将整个文件传输到本地机器?托管映像的服务器如何,它是否知道套接字已关闭并停止发送数据?这取决于一堆东西。如果映像为10 TB,则为是。绝对地

我的意思是,我有一个应用程序,第一步只需要获得Web服务器中某些图像的大小,为此,我使用了fsockopen。读取
内容长度
标题后,我关闭套接字


这个问题可能很傻,但我对tcp协议和整个互联网数据传输过程知之甚少,甚至一无所知,也不知道文件是如何通过这个套接字进入我的php应用程序的,所以我想知道的是:在读取整个文件之前,我是通过关闭套接字来节省带宽,还是仍然将整个文件传输到本地机器?托管映像的服务器如何,它是否知道套接字已关闭并停止发送数据?

这取决于一堆东西。如果映像为10 TB,则为是。绝对地如果是10万,那么可能不是

这一切都与缓冲区有关——到处都是缓冲区。每台计算机上的缓冲区,以及它们之间网络中的每台设备上的缓冲区。。以及延迟和可用带宽


但基本上,如果文件很大,是的,你在节省带宽。如果它很小,你就不是。准确地计算出来将是困难的,而且涉及的变量数量将是巨大的。而盈亏平衡点可能会随着时间的推移而改变,除非你控制了整个端到端系统(即使是这样,很多你很难控制的事情仍然会影响答案)。

这取决于一堆东西。如果映像为10 TB,则为是。绝对地如果是10万,那么可能不是

这一切都与缓冲区有关——到处都是缓冲区。每台计算机上的缓冲区,以及它们之间网络中的每台设备上的缓冲区。。以及延迟和可用带宽


但基本上,如果文件很大,是的,你在节省带宽。如果它很小,你就不是。准确地计算出来将是困难的,而且涉及的变量数量将是巨大的。除非您控制完整的端到端系统,否则盈亏平衡点可能会随着时间的推移而改变(即使这样,许多您很难控制的事情仍然会影响答案)。

基本上是的,对于足够大的文件,但是如果您使用HTTP HEAD请求,而不是完整的GET请求,您将节省更多。然后您将保存所有文件。

基本上是的,对于足够大的文件,但是如果使用HTTP HEAD请求而不是完整GET请求,您将保存更多的文件。然后保存所有文件。

好的,明白了!在我的例子中,我将使用EJP所说的head请求,它解决了我的问题,但这回答了我的问题。谢谢。是的,我本想提的,但是忘了。很高兴你得到了答案。好的,知道了!在我的例子中,我将使用EJP所说的head请求,它解决了我的问题,但这回答了我的问题。谢谢。是的,我本想提的,但是忘了。很高兴你得到了答案。谢谢你的提示,我真的不知道这种类型的请求。它非常适合我的应用程序。我选择了xaxxon的答案作为正确答案,因为它针对的是我的问题,即使我事先知道这个head请求,我也不会问:)谢谢你的提示,我对这种类型的请求并不了解。它非常适合我的应用程序。我选择xaxxon的答案作为正确答案,因为它针对的是我的问题,即使我事先知道这个head请求,我也不会问:)