cmd运行程序时如何终止python socket服务端程序的操作
用python写了一个socket服务端的程序,但是启动之后由于监听连接的是一个死循环,所以不知道怎样在cmd运行程序的时候将其终止。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import socket
import threading, time
def 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 signal
def 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。
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd13980.html
相关文章 Recommend
- • python如何缩短cmd中过长的命令
- • apache运行webpy项目遇到换行符无故增加的恼人问题
- • Python语言运行GUI程序的工作效率高不高?
- • 自动检测当前运行环境版本的python方法是什么
- • python2.7运行报Backup FAILED错误是什么问题
- • 分析python源码找到新闻阅读器无法运行的原因,
- • 我的网站爬虫python代码为什么不能正常运行,哪里
- • python运行爬虫程序时间如何控制?
- • 需要可以暂停python命令运行的方法
- • PyCharm代码可以正常运行,却总有警告什么原因
- • 请问如何使urlretrieve运行一段时间后退出
- • python cmd窗口命令提示窗口关闭方法
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:
必知PYTHON教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
必知PYTHON模块 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • django app提供pv信息的方法是什么
- • Django项目版本升级如何操作?
- • django较多数据传递如何优雅的呈现
- • django1.7获取参数问题求助
- • Django1.7使用内置comment遇到问题
- • python mysql数据库做insert操作时报_mysql_ex
- • 关于python mysql的duplicate insert机制的疑问
- • pymongo使用insert函数批量插入被中断要怎么
- • Python程序员解决棘手问题的常用库
- • 求助关于restfull api接口几个问题
图文精华 RECOMMEND
-
django1.7获取参数问题求助
-
Python程序员解决棘手问题的常用库
-
求问str()同__str__原理上有什么不同
-
scrapy框架里面用link extractor怎么能
-
python {}.fromkeys创建字典append添加操
-
python3 类型Type str doesn't support th
热点文章 HOT
- 学习Python有什么好的书籍推荐?
- Python匿名函数 Lambda表达式作用
- Python与Java、C、Ruby、PHP等编程语言有什么
- Python 正则中文网页字符串提取问题
- 如何为实时性应用存取经纬度?django my
- 想用python做个客户端,在二维码登录这个地
- 有让IDE可识别Python函数参数类型的方法吗
- Python字符串转换成列表正则疑问