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

时间:2013-08-24 20:17:16

标签: php sockets tcp stream

我的意思是,我有一个应用程序,第一步只需要在网络服务器中获取一些图像的大小,为此,我正在使用fsockopen。阅读content-length标题后,我关闭套接字。

问题可能很愚蠢,但我对tcp协议和互联网上的整个数据传输过程以及文件如何通过此套接字进入我的php应用程序几乎一无所知,所以我想知道的是:我是通过在读取整个文件之前关闭套接字来节省带宽,还是仍然完全转移到我的本地机器?托管图像的服务器怎么样,它是否知道套接字已关闭并停止发送数据?

2 个答案:

答案 0 :(得分:3)

这取决于一堆东西。如果图像是10太字节,那么是。绝对。如果它是100k,那么可能不是。

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

但基本上如果文件很大,是的,你就是在节省带宽。如果它很小,你就不是。确切地确定将是困难的并且涉及的变量的数量将是大的。除非你控制完整的端到端系统,否则盈亏平衡点可能会随着时间的推移而改变(即便如此,你很难控制的很多东西仍会影响答案)。

答案 1 :(得分:1)

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