国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

如何終止用python寫的socket服務端程序?

瀏覽:136日期:2022-09-18 08:40:59

問題描述

用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’: breaksock.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都不能終止,請問要怎么終止程序?

問題解答

回答1:

Ctrl + C

回答2:

在啟動線程之前,添加 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()

daemon

A boolean value indicating whether this thread is a daemonthread (True) or not (False). This must be set before start() iscalled, otherwise RuntimeError is raised. Its initial value isinherited from the creating thread; the main thread is not a daemonthread and therefore all threads created in the main thread default todaemon = False.

The entire Python program exits when no alive non-daemon threads areleft.

這樣 <C-c> 的中斷信號就會被 rasie。

回答3:

kill -9回答4:

關閉cmd命令窗口,重新開啟一個cmd,我是這么做的。

回答5:

可以使用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 ...')回答6:

我記得可以

try: ......except KeyboardInterrupt: exit()

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 潮州市| 汾西县| 鹤庆县| 常山县| 涿州市| 岳普湖县| 定安县| 任丘市| 桐梓县| 浮梁县| 连州市| 澎湖县| 齐齐哈尔市| 紫金县| 邵阳县| 鹤岗市| 齐齐哈尔市| 陵川县| 景德镇市| 遂平县| 盘山县| 仙游县| 开化县| 永福县| 磐安县| 淳化县| 临泉县| 安塞县| 宝清县| 大丰市| 嘉祥县| 博湖县| 吉安市| 富民县| 保亭| 陇川县| 和平县| 上犹县| 长兴县| 淮滨县| 阜平县|