是否可以仅使用在 linux c++ 上打开、读取和写入的系统功能来对网络客户端和服务器进行编程? 哪些低级别替代品有套接字?
谢谢大家
最佳答案
你需要的不仅仅是这三个。
您需要使用socket
、bind
、listen
、connect
、accept
,并且通常还使用 select
、poll
或平台特定/更高性能的现代 epoll
(Linux) 和 kqueue
(BSD)
根据套接字类型,您可以使用read
和write
,但您可能需要sendto
、recvfrom
你可以想像地使用“只读和写”的唯一方法是让 inetd super 服务器为你打开网络端口并将端口映射到 STDIN 和 STDOUT。如果这是您的目标,请查看 inetd。如果你走那条路,你甚至不需要 read
和 write
你可以直接使用 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/