मुझे थ्रेड फ़ंक्शन के अंदर पाइथन स्क्रिप्ट को मारने के विकल्प की आवश्यकता है। जब मेरा ग्राहक 0 में प्रवेश करता है तो मेरा इरादा सर्वर को मार रहा है ... क्या यह काम नहीं कर रहा है क्योंकि धागे को समाप्त नहीं किया गया है?विधियों sys.exit(), निकास(), SystemExit क्यों काम नहीं कर रहे हैं?
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()
मैं ओएस आयात करता हूं, लेकिन 'os._exit()' की कोशिश करते समय मुझे त्रुटि मिलती है: ट्रेसबैक (सबसे हालिया कॉल अंतिम): फ़ाइल "server.py", लाइन 35, क्लाइंट में os._exit(); नाम त्रुटि: वैश्विक नाम 'ओएस' परिभाषित नहीं किया गया है –
@CSGamer: आपने आयात कहां जोड़ा? क्या आप सुनिश्चित हैं कि आपके पास टाइपो नहीं है? क्योंकि ऐसा कोई कारण नहीं है जो काम नहीं करना चाहिए। – abarnert
यहां मेरे आयात हैं: 'आयात os आयात sys थ्रेड आयात से * ' –