C 클라이언트 애플리케이션을 사용하여 Junos XML 프로토콜 세션 설정
이 예에서는 Junos XML 프로토콜 C 클라이언트 애플리케이션이 SSH 또는 Telnet 프로토콜을 사용하여 연결을 설정하는 방법과 Junos OS를 실행하는 디바이스를 사용한 Junos XML 프로토콜 세션을 보여 줍니다. 문자열execlp
로 시작하는 라인에서 클라이언트 애플리케이션은 명령을 호출합니다ssh
. (적절한 경우 명령을 대체telnet
) 루틴에 대한 execlp
인수는 routing-platform Junos XML 프로토콜 서버 디바이스의 호스트 이름 또는 IP 주소를 지정합니다. 인수란 junoscript
연결을 Junos XML 프로토콜 세션으로 변환하는 명령입니다.
int ipipes[ 2 ], opipes[ 2 ]; pid_t pid; int rc; char buf[ BUFSIZ ]; if (pipe(ipipes) <0 || pipe(opipes) <0) err(1, "pipe failed"); pid = fork( ); if (pid <0) err(1, "fork failed"); if (pid == 0) { dup2(opipes[ 0 ], STDIN_FILENO); dup2(ipipes[ 1 ], STDOUT_FILENO); dup2(ipipes[ 1 ], STDERR_FILENO); close(ipipes[ 0 ]); /* close read end of pipe */ close(ipipes[ 1 ]); /* close write end of pipe */ close(opipes[ 0 ]); /* close read end of pipe */ close(opipes[ 1 ]); /* close write end of pipe */ execlp("ssh", "ssh", "-x", routing-platform , "junoscript", NULL); err (1, "unable to execute: ssh %s junoscript," device); } close(ipipes[ 1 ]); /* close write end of pipe */ close(opipes[ 0 ]); /* close read end of pipe */
if (write(opipes[ 1 ], initial_handshake, strlen(initial_handshake)) <0 ) err(1, "writing initial handshake failed"); rc=read(ipipes[ 0 ], buf, sizeof(buf)); if (rc <0) err(1, "read initial handshake failed");