簡體   English   中英

不退出python套接字程序

[英]Not exiting from python socket program

我有以下python UDP套接字客戶端。 我想在按crtl + c時退出程序,但是由於線程沒有發生,我該如何解決?

import socket
from threading import Thread
import signal
import sys
message = "well"
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('127.0.0.1', 3447)
def sighandler(signum, frame):
    # Close the server
    global sock
    print 'Shutting down server...'
    # Close existing client socket   
    sock.close()
signal.signal(signal.SIGINT, sighandler)

def recv():
    while True:
        print "Waiting to receive data"
        data, server = sock.recvfrom(4096)
        print "Server : ", server
        print "data   : ", data
Thread(target=recv).start()

try:
    while True:
        message = raw_input()
        print >>sys.stderr, 'sending "%s"' % message
        sent = sock.sendto(message, server_address)
except:
    import traceback; traceback.print_exc();

finally:
    sock.close()

有時,您在線程中所需的全部是:

t = Thread(target=recv)
# Daemon runs in background, and main can respond to ctrl-c.
t.daemon = True
t.start()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM