【问题标题】:telnet catch ctrl+c servertelnet 捕获 ctrl+c 服务器
【发布时间】:2012-10-19 07:42:18
【问题描述】:


我写了一个像here 这样的套接字服务器。如果我在 telnet 中键入ctrl+c,服务器现在什么都不做。我想像signal(SIGINT,SIG_IGN)一样抓住它
我该怎么办?

【问题讨论】:

    标签: telnet socketserver sigint


    【解决方案1】:

    telnet 程序捕获 CTRL-C 字符并将其作为单个字节 (\x03) 通过 TCP 连接发送到另一端。由接收程序决定如何处理该字节。

    如果它被“telnet 守护进程”接收到,旨在通过伪终端提供类似控制台的交互性, 组合会为在其下运行的进程生成一个 SIGINT,通常是外壳。

    因此,要回答您的问题,您可以处理收到的 \x03 字符并在内部生成一个 SIGINT,或者您可以将整个程序作为由 telnetd 在伪终端下生成和控制的进程运行。

    【讨论】:

      【解决方案2】:

      telnet 客户端(接收 SIGINT 的进程)应该处理它:或者在本地处理它(例如:终止,或重新发出提示),或者将它作为 IACsomething发送到服务器>(BRK?)和/或带外数据。 如果你想将中断传递给服务器,谷歌的“telnet IAC”可能会让你开始。

      【讨论】:

        猜你喜欢
        • 2012-06-14
        • 1970-01-01
        • 2012-02-11
        • 2011-04-30
        • 2014-01-09
        • 2013-11-10
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        相关资源
        最近更新 更多