c - FreeBSD 或 NetBSD 的 C 套接字编程最快的 I/O 策略或方法是什么?

标签 c http sockets networking freebsd

我正在研究用 C 编写的网络套接字编程。什么是为 FreeBSD 和/或 NetBSD 实现的最快(最高性能)的 I/O 策略?具体来说,如果我要在 C 语言中为 FreeBSD/NetBSD 实现 HTTP/HTTPS 网络服务器,接收数据的最有效方法是什么?

我已经阅读了这些资源,但似乎找不到答案: http://beej.us/guide/bgnet/html/multi/index.html http://www.kegel.com/c10k.html

最佳答案

Beej 的网络编程指南是一个暴行,它已成为太多人对套接字编程理解的核心。也就是说,您真正需要的是一种处理文件描述符的高速方式,而在 BSD 上,这就是 kqueue 框架[1]。

nginx/lighttpd/thttpd(我认为)都有您可以学习的 kqueue 代码。

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

关于c - FreeBSD 或 NetBSD 的 C 套接字编程最快的 I/O 策略或方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9407862/

相关文章:

c - 如何将数组字符放入方程中?

HTTP 与不同主机保持事件状态

java - 文件传输后保留文件名

c - 为什么示例 A 编译而示例 B 出现 "initializer element is not constant"错误

c++ - 使用 goto 作为错误处理策略

json - 如何使用 VBA 从 url 导入 json 数据?

node.js - _http_server.js :192 throw new RangeError (`Invalid status code: ${statusCode}` );

linux - 延迟接收Socket Can消息

c - FIONBIO 的 Winsocks 定义的实际数字是多少?

c - 试图让这个 for 循环工作?