srs代码学习(3)-链接管理

本文深入分析SRS服务器的连接管理,从accept_client函数入手,探讨SrsOneCycleThread线程类及其在处理连接请求中的应用。同时,文章将围绕RTMP协议的实现展开,包括rtmp server连接、hook机制、edge和forward功能以及统计方法,为理解SRS内部工作原理提供详细解读。
摘要由CSDN通过智能技术生成

上次谈到端口侦听后,如果有连接上来,会一直回调到server的accept_client函数里。下面来一步一步分析这个函数。并分析下srs的连接框架

int max_connections = _srs_config->get_max_connections();
    if ((int)conns.size() >= max_connections) {
        srs_error("exceed the max connections, drop client: "
            "clients=%d, max=%d, fd=%d", (int)conns.size(), max_connections, fd);
            
        srs_close_stfd(client_stfd);
        
        return ret;
    }
首先检测是否达到了最大连接数。这个连接数是所有连接,包括rtmp http rtsp等的连接数。这个最大连接数可以在配置文件中配置。默认为SRS_CONF_DEFAULT_MAX_CONNECTIONS =1000

    if (true) {
        int val;
        if ((val = fcntl(fd, F_GETFD, 0)) < 0) {
            ret = ERROR_SYSTEM_PID_GET_FILE_INFO;
            srs_error("fnctl F_GETFD error! fd=%d. ret=%#x", fd, ret);
            srs_close_stfd(client_stfd);
            return ret;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值