c++ - c++ linux 上的套接字编程 tcp 有哪些替代方案

标签 c++ linux networking

是否可以仅使用在 linux c++ 上打开、读取和写入的系统功能来对网络客户端和服务器进行编程? 哪些低级别替代品有套接字?

谢谢大家

最佳答案

你需要的不仅仅是这三个。

您需要使用socketbindlistenconnectaccept,并且通常还使用 selectpoll 或平台特定/更高性能的现代 epoll (Linux) 和 kqueue (BSD)

根据套接字类型,您可以使用readwrite,但您可能需要sendtorecvfrom

你可以想像地使用“只读和写”的唯一方法是让 inetd super 服务器为你打开网络端口并将端口映射到 STDIN 和 STDOUT。如果这是您的目标,请查看 inetd。如果你走那条路,你甚至不需要 readwrite 你可以直接使用 printf。 inetd 下的程序甚至不需要知道它是网络程序。

为什么不试试高级库呢?

查看 Boost.Asio

http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio.html

关于c++ - c++ linux 上的套接字编程 tcp 有哪些替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26601963/

相关文章:

linux - 了解 Bash 初始化脚本启动/停止/重新启动/

networking - FIN 数据包后的 TCP Windowsize 0

linux - 将 NFLOG pcap 转换为以太网 pcap

iphone - iPhone SDK 上没有route.h

c++ - 如何使用 printf() 打印 ACE_thread_t

c++ - 错误 :sorry, 未实现:在函数模板中使用 decltype 时,函数模板签名中存在字符串文字

linux - 如何使用nix的ioctl?

c++ std::list::push_back 不复制现有实例

c++ - 如何在 Bootstrap 期间在 gcc 二进制文件上设置 rpath?

python - 如何在 Linux 上修复 Python 中的 Except 错误