here과 같은 소켓 서버를 작성했습니다. 텔넷에 ctrl+c
을 입력하면 서버가 아무 것도하지 않습니다. 나는 그것을 좋아하고 싶다 signal(SIGINT,SIG_IGN)
어떻게해야합니까?telnet catch ctrl + c 서버
1
A
답변
2
텔넷 프로그램은 CTRL-C 문자를 잡아서 한쪽 바이트 (\x03
)로 전송하여 다른 쪽의 TCP 연결을 보냅니다. 바이트를 어떻게 처리할지 결정하는 것은 수신 프로그램에 달려 있습니다. 그 경우
질문에 대답하기 위해받은 \x03
문자를 처리하고 내부적으로 SIGINT를 생성하거나 의사 터미널에서 telnetd가 생성 및 제어하는 프로세스로 전체 프로그램을 실행할 수 있습니다.
0
는 텔넷 클라이언트합니다 (SIGINT를 접수에 프로세스가)이를 처리해야합니다 (BRK를 (종료하거나 다시 문제 프롬프트 등), 또는 IAC 뭔가으로 서버로 보내 로컬 그것을 처리?) 및/또는 대역 외 (out-of-band) 데이터. 인터럽트를 서버에 전달하려면 "telnet IAC"용 Google이 시작될 수 있습니다.