Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c+上编程tcp的套接字有哪些替代方案+;linux P>是否可以在Linux C++上使用只打开、读取和写入系统功能来编程网络客户端和服务器? 哪些低级别的替代方案具有套接字_C++_Linux_Networking - Fatal编程技术网

在c+上编程tcp的套接字有哪些替代方案+;linux P>是否可以在Linux C++上使用只打开、读取和写入系统功能来编程网络客户端和服务器? 哪些低级别的替代方案具有套接字

在c+上编程tcp的套接字有哪些替代方案+;linux P>是否可以在Linux C++上使用只打开、读取和写入系统功能来编程网络客户端和服务器? 哪些低级别的替代方案具有套接字,c++,linux,networking,C++,Linux,Networking,谢谢大家。你们需要的不仅仅是这三个 您需要使用socket、bind、listen、connect、accept,通常还需要使用select、poll或特定于平台/更高性能的现代epoll(Linux)和kqueue(BSD) 根据套接字类型,您可以使用读取和写入,但可能需要发送到,从 您可以想象使用“仅读写”的唯一方法是让inetd超级服务器为您打开网络端口,并将端口映射到STDIN和STDOUT。如果这是您的目标,请查看inetd。如果你走这条路,你甚至不需要读和写,你可以直接使用print

谢谢大家。

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

您需要使用
socket
bind
listen
connect
accept
,通常还需要使用
select
poll
或特定于平台/更高性能的现代
epoll
(Linux)和
kqueue
(BSD)

根据套接字类型,您可以使用
读取
写入
,但可能需要
发送到

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

为什么不试试高级库呢

查看Boost.Asio


答案不错,但建议使用“epoll”比建议使用“选择”和“轮询”更好,尤其是对于需要扩展到大量开放连接的服务器。谢谢@MichaelAaronSafyan-很高兴知道这一点。我有点过时了,我的知识大多是跨平台的。我已经有几年没有写过任何重要的网络代码了,也从来没有专门为Linux编写过。不过我会补充你的建议!他不需要使用
send()
recv()
:他可以使用
read()
write()。
实际上我的意思是包括
sendto
recvfrom
(@EJP-这不是一个限制性的列表,但如果他想做UDP读/写,实际上是不够的)事实上,我想知道关于低级网络编程。如何在linux上实现套接字?他们是否使用其他API系统函数来打开连接、发送和接收消息?