python systemexit_为什么sys.exit()、exit()、raise SystemExit方法不起作用?

该博客探讨了如何在Python脚本的线程中响应客户端输入并优雅地关闭服务器。作者遇到的问题是在接收到特定输入(如0)时无法终止脚本。代码示例显示了一个使用socket创建服务器并在接收到特定信号时关闭连接和脚本的尝试,但寻求一个替代的线程终止方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我需要一个在线程函数中杀死python脚本的替代方法。我的目的是在客户端输入0时终止服务器。。。这是不是因为线程没有被终止?这是我的代码:socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM);

print 'Socket created'

try:

socket.bind((HOST, PORT))

except socket.error, message:

print 'Bind statement failed. ERROR: ' + str(message[0]) + ' Message: ' + message[1]

sys.exit()

print 'Socket Binding Successful'

socket.listen(10)

print 'Socket is currently listening'

def clientThread(connection):

while 1:

data = connect.recv(1024)

try:

quit = int(data)

except:

quit = 3

if quit == 0:

print 'Closing the connection and socket...'

connect.close()

socket.close()

sys.exit(); //Alternative needed here...

break

reply = 'Ok....' + data

if not data:

break

connect.sendall(reply)

while 1: #forever loop

connect, address = socket.accept()

print 'Just connected with ' + address[0] + ' : ' + str(address[1])

start_new_thread(clientThread, (connect,))

socket.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值