【问题标题】:Is rtsp server using epoll meaningless? in case there are many clientsrtsp服务器使用epoll没有意义吗?如果有很多客户
【发布时间】:2013-12-13 02:16:12
【问题描述】:

我尝试在linux中制作rtsp服务器,我认为服务器会自动选择单线程或多线程。

如您所知,RTSP 在服务器和客户端之间有很多数据包。 (视频、音乐等实时数据)

所以,我认为 epolling 不是一个好的选择。因为在这种情况下,事件每次都会发生。

另外,听说1个线程1个socket不好。由于同样的原因,这也不是一个好的选择。

我看到了关于那个的示例代码,没有人在一个线程中进行 epolling 或多套接字。 (可能只是示例代码)

对吗? rtsp服务器使用epolling不是没有意义吗?

【问题讨论】:

  • 要在一台服务器中处理多个客户端/服务,您需要一台状态机。如果您为每个客户端使用一个线程,则操作系统通过为每个客户端 服务器线程提供它自己的堆栈来为您提供状态机。如果你使用非阻塞设计,你必须在你自己的代码中实现状态机。

标签: multithreading sockets rtsp epoll


【解决方案1】:

这取决于很多事情,例如您需要服务的客户总数是多少?如果您正在做一个家庭服务器并同时为最多 10 个客户端提供服务,那么每个客户端使用一个线程会更好。对于 50 个客户,情况可能仍然如此,尽管 poll 更有可能是更好的选择。如果有 10,000 个客户端,在边缘触发模式下使用 epoll 可能会更好。

我刚刚发布了一篇比较不同投票方法的文章:http://www.ulduzsoft.com/2014/01/select-poll-epoll-practical-difference-for-system-architects/ - 检查一下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 2016-09-27
    相关资源
    最近更新 更多