2011-03-18 2 views
1

그래서 나는 같은 소켓 연결을 열었습니다 here 다른 프로세스가 열린 연결을 사용하게하고 싶습니다. dup() 도와 주시겠습니까? 아니면 내가 무엇을해야합니까?Linux, C++, dup (소켓)은 fork되지 않은 다른 프로세스에서 작동합니까?

+0

뜻은 다음과 같습니다. http://stackoverflow.com/questions/5312773/c-application-is-it-possible-to-pass-accepted-tcp-connection-from-one-process/5312831#5312831? 'dup'은 전혀 도움이되지 않습니다. –

+0

넵 ...하지만 10 줄 미만의 블랙 매직을 수행하는 것이 훨씬 더 차가워 질 것입니다 ... =) – Rella

+0

부수적으로 유닉스 방법은 프로세스에서 소켓을 생성 한 다음 fork()'. 그 자식 프로세스는 (O_CLOEXEC로 열지 않는 한) 모든 소켓을 상속받습니다. 그런 식으로 유닉스에서 정말 쉽습니다. Windows에서 훨씬 더 열심히 ... 각 OS에는 장단점이 있습니다. –

답변

2

기존 프로세스간에 소켓을 전달하려면 sendmsg을 사용하거나 libancillary을 사용해야합니다.

+0

ok ... 리눅스에서 WSADuplicateSocket과 같은 것은 아무 것도 없어 ... hm = ( – Rella

관련 문제