我已经在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
它在键盘中断部分,代码不起作用。