我正在为 P2p 文件共享实现 bit torrent。比方说,最多 100 个对等方同时共享。 TCP 连接是在每个对等点之间建立的。最初,一个对等点拥有整个文件,它开始共享片段,随后所有对等点共享他们的片段。
通常,片段大小为 50kB - 1MB。我想知道,在 C 中编写此类应用程序的最佳方法是什么。将线程与 epoll 或 libevent 一起使用?
谁能给出不同可能方法的正面/负面影响?
最佳答案
如果我们在任何给定时刻只谈论 100 个对等连接,那么使用 select 的传统方法或 poll在一组 TCP 套接字上运行会很好。
EPoll 有助于解决何时需要扩展到数千个长时间运行的连接的问题。阅读 C10K problem 上的文档了解更多详情。
我听说过有关 libevent 的好消息。我相信它是 epoll 和其他套接字函数之上的抽象,提供了一些不错的东西。如果它使您的编程更容易,那么一定要使用它。但您可能不需要它来提高性能。
关于c - Epoll vs Libevent for Bittorrent like application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29665513/