inetd 是否简化了服务器程序,而不影响并发处理多个客户端的部分?

inetd 是否简化了服务器程序,而不影响并发处理多个客户端的部分?

在 Linux 编程接口中,第 60 章讨论了

  • 通过使用套接字、多进程/线程或线程/进程池,设计一个服务器来同时处理多个客户端

  • 设计一个由inetd调用的服务器,这简化了服务器程序。

如果服务器要与 inetd 一起使用,则它只需处理来自 stdin 的输入并输出到 stdout,而不是处理套接字。 inetd 处理使用套接字、多路监控传入请求的部分,并为每个传入请求分叉一个进程来执行服务器程序。

我想知道与 inetd 一起使用的服务器程序是否仍然可以具有同时处理多个客户端的相同部分,作为服务器程序的独立版本?

inetd 为每个传入请求分叉一个新进程来执行整个服务器程序,这样正确吗?

那么服务器程序是不是不需要并发处理多个请求,而只需处理一个请求呢?

inetd 是否使服务器程序相当于一个并发独立版本,它派生一个子进程来处理每个收到的请求?

与独立的多线程服务器程序相比,这是一个不错的选择吗?

谢谢。

答案1

是的,inetd 会分叉您的程序,这意味着每个实例将为一个客户端提供服务。

问题“是否使用 inetd”有关何时处理程序中的并发性更有意义以及何时让 inetd 处理它的更多信息。

相关内容