Ceci est une ancienne révision du document !
En construction
#!/usr/bin/python # -*- coding: utf-8 -*- # Serveur TCP avec StreamRequestHandler # inspiré de: http://blog.doughellmann.com/2007/12/pymotw-socketserver.html import SocketServer # import seulement nécessaire pour le traitement d'erreur d'eval() import sys from math import * ############################################################################## class Traitementrequete(SocketServer.StreamRequestHandler): def handle(self): # lecture de la requête et suppression des caractères de fin de ligne requete = self.rfile.readline().rstrip('\r\n') # préparation de la réponse try: reponse = "%s" % eval(requete) except: reponse = "%s" % sys.exc_info()[1] # envoi de la réponse avec ajout des caractères de fin de ligne self.wfile.write("%s\r\n" % reponse) return ############################################################################## if __name__ == '__main__': adresse = ('192.168.0.99', 20000) serveur = SocketServer.TCPServer(adresse, Traitementrequete) print "serveur actif" serveur.serve_forever() #server.socket.close()
#!/usr/bin/python # -*- coding: utf-8 -*- # Serveur TCP avec StreamRequestHandler et ThreadingMixIn # inspiré de: http://blog.doughellmann.com/2007/12/pymotw-socketserver.html import SocketServer # import seulement nécessaire pour le traitement d'erreur d'eval() import sys from math import * ############################################################################## class Traitementrequete(SocketServer.StreamRequestHandler): def handle(self): # lecture de la requête et suppression des caractères de fin de ligne requete = self.rfile.readline().rstrip('\r\n') # préparation de la réponse try: reponse = "%s" % eval(requete) except: reponse = "%s" % sys.exc_info()[1] # envoi de la réponse avec ajout des caractères de fin de ligne self.wfile.write("%s\r\n" % reponse) return ############################################################################## class Serveurthread(SocketServer.ThreadingMixIn, SocketServer.TCPServer): pass ############################################################################## if __name__ == '__main__': adresse = ('192.168.0.99', 20000) serveur = Serveurthread(adresse, Traitementrequete) print "serveur actif" serveur.serve_forever() #server.socket.close()
#!/usr/bin/python # -*- coding: utf-8 -*- # client TCP fait pour communiquer avec un serveur TCP "StreamRequestHandler" # Voir http://blog.doughellmann.com/2007/12/pymotw-socketserver.html import socket ############################################################################## if __name__ == '__main__': adresse = ('192.168.0.99', 20000) while True: # saisie de la requete au clavier requete = raw_input("?: ").strip() # condition d'arrêt du client if requete=="": print "arret du client TCP" break else: # établissement de la connexion maSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: maSocket.connect(adresse) except: print "impossible d'etablir la connexion" break # envoi de la requête envoi = maSocket.send("%s\r\n" % requete) # réception de la réponse reponse = maSocket.recv(1024).rstrip("\r\n") # traitement de la réponse print 'Reception: "%s"' % reponse # arrêter la connexion maSocket.close()