Какова самая быстрая стратегия или метод ввода / вывода для программирования сокетов в C для FreeBSD или NetBSD? - PullRequest
2 голосов
/ 23 февраля 2012

Я изучаю программирование сетевых сокетов на C. Какую самую быструю (самую высокую производительность) стратегию ввода / вывода реализовать для FreeBSD и / или NetBSD? В частности, если бы я должен был реализовать веб-сервер HTTP / HTTPS в C для FreeBSD / NetBSD, какой самый эффективный способ получения данных?

Я прочитал эти ресурсы, но, похоже, я не смог найти ответ: http://beej.us/guide/bgnet/html/multi/index.html http://www.kegel.com/c10k.html

1 Ответ

7 голосов
/ 23 февраля 2012

Руководство Биджа по сетевому программированию - это злодеяние, которое стало ядром слишком многого понимания программистами сокетов. Тем не менее, на самом деле вы запрашиваете высокоскоростной способ обработки файловых дескрипторов , а на BSD это инфраструктура kqueue [1].

nginx / lighttpd / thttpd (я думаю) у всех есть код kqueue, из которого вы можете узнать.

[1] http://people.freebsd.org/~jlemon/papers/kqueue.pdf

...