键盘中断不在命令提示符下工作

时间:2017-09-29 14:33:06

标签: python sockets cmd keyboardinterrupt

我已经在python中编写了一个简单的套接字服务器,它可以监听多个客户端,直到您按下控制器c,以便您可以选择要连接的客户端。我对键盘中断使用错误处理,但奇怪的是键盘中断在我的操作系统上不起作用。

我使用Windows 10 64位并通过命令提示符运行程序但是当有被动套接字侦听时它似乎忽略了控制c和z。我已经尝试过控制+ Fn + B但是python不会将其识别为键盘中断。

我是否需要为cmd配置特定设置以查看键盘中断?我尝试直接在python 2.7解释器上运行程序,但仍然无法进行键盘中断。

import socket,sys
try:
        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#socket
        s.settimeout(10)
        s.bind(('0.0.0.0',port))
        s.listen(1)#accept max 50 connections
        while True:#locate client
            try:
                c,a=s.accept()  
            except socket.timeout:
                continue
            except Exception as e:
                print '[!]Error : '+str(e)
            if a:
                s.settimeout(None)
                time.sleep(2)
                auth=c.recv(1024)#wait 5 sec for key
                if auth == serverkey:#verify key
                    socks.append(c)
                    clients.append(a)
                    c.send('authed')
            else:#kill socket
                c.close()
                continue
            if socks:#print available clients
                clr()
                print '[*]Listening for clients...'
                clr()
                print '[ID]   |   [IP]\n==============='
                for i in range(len(socks)):#display clients
                    print '['+str(i)+']   |   ['+str(clients[i][0])+']'
                print '\nControl C to choose/quit'
    except KeyboardInterrupt:#control c for selection
        if not socks:
            sys.exit('[*]User requested shutdown...')
        elif socks:
            while True:
                id=raw_input('\n[*]ID of backdoor/-exit to quit : ')
                if id == '-exit':
                    sys.exit('\n[*]User requested shutdown...')
                else:
                    try:
                        socks[id]
                    except:
                        clr()
                        print '[ID]   |   [IP]\n==============='
                        for i in socks:
                            print '['+str(I)+']   |   ['+c(0)+']'
                        print '\n[-]Invalid ID...'
                        continue
                return id

它在键盘中断部分,代码不起作用。

0 个答案:

没有答案