Ceci est le code que j'ai joué, mais chaque fois que je fais une erreur, je ne peux pas le relancer. Il me dit que le port/socket est déjà utilisé C'est la première question Le second est dans mon MyTCPHandler comment puis-je savoir le port utilisé? voici mon code:python SocketServer.BaseRequestHandler connaître le port et utiliser le port déjà ouvert
# MetaProject v 0.2
# -*- coding: utf-8 -*-
"""
Thanks to :
People from irc :
Flox,Luyt
People from stack Overflow :
Philippe Leybaert,Platinum Azure,methodin,Suresh Kumar,S.Lott,MatTheCat,
kevpie,Ignacio Vazquez-Abrams,adamk,Frédéric Hamidi,THC4k,THC4k,Blam
"""
import SocketServer
import threading
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
self.data = self.request.recv(1024)
socket = self.request
print "%s wrote:" % self.client_address[0]
print self.data
print self.__dict__
socket.sendto(self.data.upper(), self.client_address)
def serve_thread(host, port):
server = SocketServer.TCPServer((host, port), MyTCPHandler)
server.serve_forever()
if __name__ == "__main__":
threading.Thread(target=serve_thread,args=('localhost', 1238)).start()
threading.Thread(target=serve_thread,args=('localhost', 1237)).start()
print "toto"
je l'ai fait:
def serve_thread(host, port):
if port == 1858 :
server = SocketServer.TCPServer((host, port), Serverhttp,bind_and_activate=True)
elif port == 1958 :
server = SocketServer.TCPServer((host, port), Serversmtp,bind_and_activate=True)
server.allow_reuse_address=True
server.serve_forever()
mais il ne fonctionne pas. Cordialement
pourriez-vous être un peu plus précis s'il vous plaît? – user462794
pourriez-vous être un peu plus précis s'il vous plaît? Puis-je faire: def serve_thread (hôte, port): si port == 1858: serveur = SocketServer.TCPServer ((hôte, port), Serverhttp, bind_and_activate = True) elif port == 1958: serveur = SocketServer. TCPServer ((hôte, port), Serversmtp, bind_and_activate = True) server.allow_reuse_address = Vrai server.serve_forever() – user462794
@ user462794: Qu'est-ce qui ne fonctionne pas? Vous avez marqué cette réponse comme acceptée, alors laissez-moi savoir si vous avez encore des problèmes. – bstpierre