2012-10-29 7 views
1


here과 같은 소켓 서버를 작성했습니다. 텔넷에 ctrl+c을 입력하면 서버가 아무 것도하지 않습니다. 나는 그것을 좋아하고 싶다 signal(SIGINT,SIG_IGN)
어떻게해야합니까?telnet catch ctrl + c 서버

답변

2

텔넷 프로그램은 CTRL-C 문자를 잡아서 한쪽 바이트 (\x03)로 전송하여 다른 쪽의 TCP 연결을 보냅니다. 바이트를 어떻게 처리할지 결정하는 것은 수신 프로그램에 달려 있습니다. 그 경우

는 조합 그것에서 실행하는 프로세스, 통상적 쉘에 SIGINT 생성 것으로, 의사 단말을 통해 콘솔과 같은 상호 작용을 제공 할 의도는 "텔넷 데몬"에 의해 수신된다.

질문에 대답하기 위해받은 \x03 문자를 처리하고 내부적으로 SIGINT를 생성하거나 의사 터미널에서 telnetd가 생성 및 제어하는 ​​프로세스로 전체 프로그램을 실행할 수 있습니다.

0

는 텔넷 클라이언트합니다 (SIGINT를 접수에 프로세스가)이를 처리해야합니다 (BRK를 (종료하거나 다시 문제 프롬프트 등), 또는 IAC 뭔가으로 서버로 보내 로컬 그것을 처리?) 및/또는 대역 외 (out-of-band) 데이터. 인터럽트를 서버에 전달하려면 "telnet IAC"용 Google이 시작될 수 있습니다.