2014-04-19 3 views
0

C로 쓰여진 서버는 pipe()을 사용하는 이름없는 유닉스 파이프를 생성한다 - 즉 한 쌍의 fd이다. 그러면 통신을 위해 fd를 전달하는 클라이언트가 시작됩니다.자바 클라이언트에서 (이름이없는) 유닉스 파이프를 여는 방법

클라이언트가 C로 작성되면 모든 것이 간단합니다. 문제는 fd가 주어지면 Java 클라이언트에서 파이프를 여는 방법입니다.

일반 POSIX 솔루션이 좋지만 Linux 전용으로 충분합니다.

+0

stdin/stdout에 파이프를 연결하여 클라이언트를 포크하면 다른 프로그램이있는 것처럼 사용할 수 있습니다. 그게 충분하니? –

+0

@Ernest Friedman-Hill - 아니요. 다른 파이프를 사용해야합니다. – grep

답변

0

리눅스에서는 의사 파일 을 사용하면 PID가 PID (이 경우 서버) 인 프로세스에 연결된 파일 설명자 N에 가장 쉽게 액세스 할 수 있습니다.

+0

좋은 아이디어 -'/ proc/self/fd/N'이 효과가 있습니다. – grep

관련 문제