我正在做一个与视频流相关的项目。我一直在access_output和access模块中广泛阅读http代码。我的问题是客户端如何要求服务器在应用层发送更多数据,特别是使用http。我假设它在位于src/network文件夹中的httpd文件中,但是我一直在写日志文件,我似乎不知道客户机是如何请求数据的。实际上,服务器似乎只是在没有确认的情况下将其发送给客户机,但我非常怀疑情况是否如此。
非常感谢你的帮助!
发布于 2015-04-27 09:42:34
请求更多数据是使用带有HTTP GET头的Range实现的。
示例:
Range: bytes=123-
Range: bytes=123-456
在VLC中,您可以在模块/access/http.c中找到相关代码
static int Request( access_t *p_access, uint64_t i_tell )
{
[...]
/* Offset */
if( p_sys->i_version == 1 && ! p_sys->b_continuous )
{
p_sys->b_persist = true;
net_Printf( p_access, p_sys->fd, pvs,
"Range: bytes=%"PRIu64"-\r\n", i_tell );
net_Printf( p_access, p_sys->fd, pvs, "Connection: close\r\n" );
}另见: RFC中的HTTP范围请求。
https://stackoverflow.com/questions/29611564
复制相似问题