Bonjour à tous,
J'ai ce code ui va ecouter les entrée sur le port 81.
Quand il y a une valeur, soit il l'enregistre dans une base de donnée soit il retourne un petit message.
J'aimerais que lorsqu'il il recoit le message, il arrete d'écouter le port 81 et rendre le prompt a l'utilisateur, sans message d'erruer.
J'ai essyaé avec import sys, sys.exit(), mais j'ai un peté de message sans avoir le prompt.
Que me recommanderiez-vous ?
Voici mon code
et voici le message que je recoit a cause de exit.quit()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 from twisted.internet.protocol import Factory, Protocol from twisted.internet import reactor import time import _mysql import pprint import sys class SendContent(Protocol): def connectionMade(self): print 'Accepted connection' def dataReceived(self, data): if data.strip() == "bye": print 'Bye'; elif data.strip() == "quit": print "quit" sys.exit() print "quit" #ceci n'est pas affiché else: date = time.time() values = data.split(','); if len(values) != 4: print 'Error: Data must have 4 arguments separated with coma' else: db = None; try: db = _mysql.connect('localhost', 'username','password','db') db.query("INSERT INTO tracker (date, speed, lat, lng, course)" + "VALUES ('" + str(date) + "', '" + str(values[0]) + "', '" + str(values[1]) + "', '" + str(values[2]) + "', '" + str(values[3]) + "')") print "---------------------" print "| Data Logged |" print "---------------------" print "Speed: " + values[0] print "Latitude: " + values[1] print "Longitude: " + values[2] print "Course: " + values[3] except _mysql.Error, e: print "Error %d: %s" % (e.args[0], e.args[1]) finally: if db: db.close() class SendContentFactory(Factory): protocol = SendContent reactor.listenTCP(81, SendContentFactory()) reactor.run()
MerciUnhandled Error
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 84, in callWithLogger
return callWithContext({"system": lp}, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 69, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
return func(*args,**kw)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 626, in _doReadOrWrite
why = selectable.doRead()
File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 203, in doRead
return self._dataReceived(data)
File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 209, in _dataReceived
rval = self.protocol.dataReceived(data)
Partager