C를 사용하여 텔넷 구현 [닫기]

C를 사용하여 텔넷 구현 [닫기]

프로그램은 일반적으로 제가 구현하고 싶은 텔넷 프로그램입니다.

클라이언트 측에서 사용자는 자신의 로그인과 비밀번호를 보내고, 맞다면 서버에 명령을 보내기 시작합니다.

서버 측에서는 시스템의 사용자 인증을 확인하고 그것이 사실이라면 파일에 저장된 기본 셸을 실행하여 passwd명령을 실행해야 합니다.

문제는 systemC 함수를 사용하여 그의 쉘을 실행하려고 할 때 쉘이 실행된 다음 닫히는 것입니다. 사용자를 위해 열린 쉘을 system()사용 fork()하고 마친 후 닫히기 때문입니다.exec()

프로세스 내에서 새 셸을 실행하고 계속 실행하여 다음 명령을 실행하려면 어떻게 해야 합니까?

답변1

거기에 가기 전에 텔넷 프로토콜의 사양을 읽어보십시오(RFC 854, 또한보십시오위키피디아 항목해당 RFC의 전체 목록을 보려면) 원격 로그인은매우다양한 운영 체제와 심지어 다른 문자 인코딩을 사용하는 시스템 간에 연결하도록 설계되었기 때문에 복잡한 프로토콜입니다. 그 밖에도 추천합니다안 돼요매우 위험하므로 사용하세요.

원격으로 명령을 실행하려면 ssh를 사용하세요.

답변2

이런 종류의 일에 대해서는 더 쉬운 것부터 시작하고 싶을 수도 있습니다. 왜냐하면 당신이 이 분야에 익숙하지 않은 것처럼 들리기 때문입니다. 어쩌면 이전 talk / talkd명령줄 프로그램과 데몬이 이해하기 더 쉬울까요? 일부 귀중한 리소스에는 APUE(UNIX 환경의 고급 프로그래밍)(Stevens), UNP 또는 UNIX용 네트워크 프로그래밍(Stevens도 제공) 및 효과적인 TCP/IP 프로그래밍(Snader)이 포함되어 있어 작업 유형에 더 익숙해질 수 있습니다. 현재 진행 중인 작업, 특히 TCP/IP 작업을 수행할 것입니다.

답변3

그냥 사용할 수는 없습니다 . 직접 사용 하고 양방향으로 파이프를 사용해야 system합니다 . Ctrl 키 입력을 캡처하려면 일종의 터미널 인터페이스도 사용해야 합니다.forkexec

관련 정보