Epoll vs Libevent for Bittorrent喜欢申请

时间:2015-04-16 04:45:39

标签: c multithreading bittorrent epoll libevent

我正在为P2p文件共享实现bit torrent。让我们说,同时共享的100个对等体中的最大值。 TCP连接在每个对等体之间建立到每个其他对等体。最初,One peer拥有整个文件,它开始共享片段,随后所有同伴共享他们的片段。

通常,件大小为50kB - 1MB。我想知道,在C语言中编写此类应用程序的最佳方法是什么。使用epoll或libevent的线程?

任何人都可以给出不同可能方法的肯定/否定吗?

2 个答案:

答案 0 :(得分:1)

如果我们在任何特定时刻只讨论100个对等连接,那么在一组TCP套接字上使用selectpoll的传统方法就可以正常工作。

EPoll有助于解决何时需要扩展到数千个长时间运行的连接的问题。请阅读C10K problem上的文档了解更多详情。

我听说过有关自由的好事。我相信它是epoll和其他套接字函数之上的抽象,提供了一些不错的东西。如果它使您的编程更容易,那么一定要使用它。但是你可能不需要它来表现。

答案 1 :(得分:0)

Libevent本质上是epoll的包装器,主要用于编写好的可移植代码。由于它是一个包装器,epoll的缺点将被保留,并且从性能角度来看不会增加太多。如果不考虑可移植性,epoll应该可以正常工作。更好的是,如果音量大大低于仍然使用poll