cmd运行程序时如何终止python socket服务端程序的操作,pythonsocket,用python写了一个s
cmd运行程序时如何终止python socket服务端程序的操作,pythonsocket,用python写了一个s
用python写了一个socket服务端的程序,但是启动之后由于监听连接的是一个死循环,所以不知道怎样在cmd运行程序的时候将其终止。
#!/usr/bin/python# -*- coding: utf-8 -*-import socketimport threading, timedef tcplink(sock,addr): print('Accept new connection from %s:%s...' %addr) sock.send(b'Welcome!') while True: data=sock.recv(1024) time.sleep(1) if not data or data.decode('utf-8')=='exit': break sock.send(('Hello,%s!'% data.decode('utf-8')).encode('utf-8')) sock.close() print('Connection from %s:%s closed.' % addr) s=socket.socket()s.bind(('127.0.0.1',1234))s.listen(5)print('Waiting for conection...')while True: #accept a new connection sock,addr=s.accept() #create a new thread t=threading.Thread(target=tcplink,args=(sock,addr)) t.start()
在win10上的cmd运行后的情况是按ctrl+c,ctrl+z,ctrl+d都不能终止,请问要怎么终止程序?
关闭cmd命令窗口,重新开启一个cmd,我是这么做的。
可以使用signal模块,当按住Ctrl+C时,捕捉信息,然后退出.
#!/usr/bin/env python# -*- coding: utf-8 -*-import signaldef do_exit(signum, frame): print("exit ...") exit()signal.signal(signal.SIGINT, do_exit)while True: print("processing ...")
Ctrl + C
kill -9
我记得可以
try: ......except KeyboardInterrupt: exit()
在启动线程之前,添加 setDaemon(True)
while True: #accept a new connection sock,addr=s.accept() #create a new thread t=threading.Thread(target=tcplink,args=(sock,addr)) t.setDaemon(True) # <-- add this t.start()
这样 <C-c> 的中断信号就会被 rasie。
编橙之家文章,
相关内容
- python multiprocessing返回结果的规则是什么,,from multipr
- 用python下载gitbook上的pdf书籍后 如何转化为html,python
- 防止爬虫IP被屏蔽的应对方法代码放在哪里有效果requ
- mongo 2.6.3释放已删除mongodb集合空间方法是什么,mongom
- 请教Python内存合理分配及引用问题,python合理分配,如下
- Python适合新手练手项目推荐,python新手练手项目,我不是
- python中用requests模块登录状态cookie相关问题求助,pyth
- 想用python做一个投票站.求个思路,python投票站,希望有
- Python selenium抓取数据PhantomJS快速报错,seleniumphantomjs,
- Python对外服务经常被扫描如何应对,python对外服务应对
评论关闭