inetd는 여러 클라이언트의 동시 처리에 영향을 주지 않고 서버 프로그램을 단순화합니까? [폐쇄]

inetd는 여러 클라이언트의 동시 처리에 영향을 주지 않고 서버 프로그램을 단순화합니까? [폐쇄]

Linux 프로그래밍 인터페이스의 60장에서는 다음과 같이 설명합니다.

  • 소켓, 다중 프로세스/스레드 또는 스레드/프로세스 풀을 사용하여 여러 클라이언트를 동시에 처리하도록 서버를 설계합니다.

  • 서버 프로그램을 단순화하는 inetd로 호출되는 서버를 설계합니다.

서버가 inetd와 함께 사용되는 경우 소켓을 처리하는 대신 단순히 stdin의 입력과 stdout으로의 출력을 처리합니다. inetd는 소켓을 사용하여 들어오는 요청을 모니터링하고, 멀티플렉싱하고, 각 들어오는 요청에 대해 서버 프로그램을 실행하는 프로세스를 포크하는 부분을 처리합니다.

inetd와 함께 사용되는 서버 프로그램이 서버 프로그램의 독립형 버전처럼 동시에 여러 클라이언트를 처리하는 동일한 부분을 가질 수 있는지 궁금합니다.

inetd가 들어오는 각 요청에 대해 전체 서버 프로그램을 실행하기 위해 새로운 프로세스를 포크하는 것이 맞습니까?

그렇다면 서버 프로그램은 여러 요청을 동시에 처리할 필요가 없고 하나의 요청만 처리하면 됩니까?

inetd는 서버 프로그램을 들어오는 각 요청을 처리하기 위해 하위 프로세스를 분기하는 동시 독립 버전과 동일하게 만드나요?

독립형 다중 스레드 서버 프로그램에 비해 이것이 좋은 선택입니까?

감사해요.

답변1

예, inetd는 프로그램을 포크합니다. 즉, 각 인스턴스가 하나의 클라이언트에 서비스를 제공한다는 의미입니다.

질문"inetd를 사용할지 여부"프로그램에서 동시성을 처리하는 것이 더 합리적인 시기와 inetd에서 이를 처리하도록 하는 경우에 대한 자세한 정보입니다.

관련 정보