在libevent中限制连接

时间:2011-07-02 14:19:14

标签: c http libevent

我想控制每个进程可能的libevent-http连接的限制。

我该怎么做?

我没有在文档中找到任何信息,请帮忙!

我认为如果我没有限制连接数 - 系统可能崩溃。项目负荷很高。

ev_base = event_init();
ev_http = evhttp_new(ev_base);
// limit http connections here... how can i do that?

1 个答案:

答案 0 :(得分:3)

struct evconnlistener *
evconnlistener_new(struct event_base *base,
    evconnlistener_cb cb, void *ptr, unsigned flags, int backlog,
    evutil_socket_t fd)

积压是您要修改的内容。 在内部他们打电话:

listen(fd, backlog)

然而,在他们的http库中,他们将积压修复为128:

evhttp_bind_socket_with_handle(struct evhttp *http, const char *address, ev_uint16_t port)
{
    [...]
        if (listen(fd, 128) == -1) {
                event_sock_warn(fd, "%s: listen", __func__);
                evutil_closesocket(fd);
                return (NULL);
        }
    [...]
}