Hi
> - en réseau,système regarde vers python-twisted > > > Ha, ca c'est genial , mais le reste Paaaaa:) . Twisted c'est vraiment > l'outil de référence pour programmer en resau /TPC/VOIP,udp .Tous les > protocoles peuvent être écrit avec un minimum de code possible .les > `Deferreds` [1] .permettent un gestion asyncrone de tout ce qui se > passe . Il y 'a une gestion très rigoureuse de l'agencement descallbacks > les uns sont chaines sur les autres et la gestion de ce qu'il faut exécuter > quand il faut l' exécuter est géré par Twister. Tu peux interfacer presque > tout les protocoles. Ca c'est vraiment l'outil qu'il te faut. > > Un exemple > https://github.com/aliounedia/myQtSoft/tree/master/myTwisted > http://twistedmatrix.com/documents/11.0.0/core/howto/defer.html > > # creer un serveur de test en 5 lignes /TCP/UDP ... > > from twisted.internet import protocol, reactor > > class BasicServer(protocol.Protocol): > def dataReceived(self, data): > self.transport.write('server_response:'+ data) > self.transport.loseConnection() > > class BasicServerFactory(protocol.Factory): > def buildProtocol(self, addr): > return BasicServer() > > reactor.listenTCP(1234, BasicServerFactory()) > reactor.run() > > > # creer un client : > > # Ce fichier ne sert a rein d'autre qu'a rendre > # ce dossier un module . > from twisted.internet import reactor ,defer > from twisted.protocols import basic > from twisted.internet.protocol import ClientCreator > from sys import stdout > import time > class Manager(basic.LineOnlyReceiver): > > def __init__(self): > self.ids = {} > > def dataReceived(self, data): > self.dispatch_incomming(data) > > def connectionMade(self): > #self.test_send() > #wait simulation > time.sleep(5) > self.call_with_key_test() > > def test_send(self,message): > self.transport.write(message) > > def call_with_key_test(self , key =None, message =None): > > df = defer.Deferred() > if not key or not message: > message ='test_key:test_val' > else : message ='%s:%s'%(key, message) > > > if key in self.ids: > del self.ids[key] > > self.ids['test_key'] =df.callback > self.test_send(message) > > > # test all methods > df.addCallbacks(self.process_done) > > > def process_done(self, *args): > print 'process_done' > print args > try: > del self.ids['test_key'] > except : > pass > > def dispatch_incomming(self, data): > key = data.split(':')[1] > df_callback =self.ids.get(key, None) > df_callback(data) > > > > creator = ClientCreator(reactor, Manager) > d = creator.connectTCP("localhost", 1234) > reactor.run() > --Ad >
server.py
Description: Binary data
__init__.py
Description: Binary data
client.py
Description: Binary data
-- Ce message a été envoyé à la liste [email protected] Gestion de votre abonnement : http://dakarlug.org/liste Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug Le site du DakarLUG : http://dakarlug.org
