프로세스 간에는 msg를 통해 공유되는 소켓이 있습니다. 소켓을 사용하면 원격 연결 정보를 얻을 수 있습니다. 그러나 getpeername 결과는 0.0.0.0이며 아무런 오류가 없습니다.프로세스 사이에는 msg를 통해 공유되는 소켓이 있습니다. 소켓 getpeername 결과는 오류없이 0.0.0.0입니다.
심지어/proc/net/tcp를 점검했지만 연결이 없습니다.
여기 내 세부 구현입니다. 웹 서버에 대한
- , lighttpd를 recevie HTTP 연결
- 웹 서버 바이 패스
- 있는 fcgi 프로그램은 간단한 작업을 위해, (웹 서버) 소켓을 처리하는 과정에 수용 소켓을.
- 동시에 단계 3. 프로세스는
가 [상기 절차에서 단계 3 및 4를 동시에 작동 그러나 3 단계 간단한 웹 서버 hanle 기본 절차에서 공유 소켓을 받는다. 그래서 3 단계는 즉시 끝날 것이며, 그리고 웹 서버는 요청을 닫습니다. 그 후 4 단계 만 단독으로 작동합니다. ]
프로세스 (4 단계)에서 getpeername을 제외하고 다른 모든 소켓 기능은 정상적으로 작동합니다. select/send/recv와 같이
프로세스간에 공유 소켓에서 peername을 가져 오는 경우 제대로 작동하지 않습니까?
그렇다면 빠른 cgi에서 피어 주소를 얻으려면 어떻게해야합니까? 다른 방법이 있습니까? 웹 서버 에서 피어 주소 정보를 얻은 다음 메시지 또는 파이프 전송을 사용하여 cgi로 전달하십시오. – agfe2