› Foros › PC › Software libre
class StreamHandler ( Thread ):
def __init__( self,verbose=False ):
self.verbose=verbose
#parece que no hace falta lock si confiamos en http://effbot.org/zone/thread-synchronization.htm
self.event=dict()
Thread.__init__( self )
def isWaiting(self):
"""hay algun evento esperando"""
return self.event!=dict()
def getEvent(self):
"""coge el evento"""
evento=self.event
self.event=dict()
return evento
def run(self):
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server_socket.bind(('', PORT))
self.server_socket.listen(10)
# Add server socket to the list of readable connections
CONNECTION_LIST.append(self.server_socket)
print "TCP/IP server started."
while 1:
# Get the list sockets which are ready to be read through select
read_sockets,write_sockets,error_sockets = select.select(CONNECTION_LIST,[],[])
for sock in read_sockets:
if sock == self.server_socket:
sockfd, addr = self.server_socket.accept()
CONNECTION_LIST.append(sockfd)
print "Client (%s, %s) connected" % addr
else:
# Data recieved from client, process it
try:
#In Windows, sometimes when a TCP program closes abruptly,
# a "Connection reset by peer" exception will be thrown
#while 1:
self.event = encoder.loads(sock.recv(RECV_BUFFER))
except:
print "Client (%s, %s) is offline" % addr
sock.close()
CONNECTION_LIST.remove(sock)
continue
server_socket.close()
## --------------------- INICIAMOS HILO SERVIDOR RED
recibir_eventos = StreamHandler()
recibir_eventos.start()
Es triste que cosas que parecen no se contesten y los post estupidos y repetidos se llenen de respuestas.
No puedo ayudarte, lo siento pero te subo el hilo a ver si otro te puede ayudar...
Ferdy escribió:Hombre... lo triste es escribir por escribir.... ¿no te parece?- ferdy
Vaya, pues me apunto a la moda de capitanquartz de la escritura insustancial...¿o no?. Si el compañero no upea el post, tu no lo ves, y gimbo se queda con un post perdido y sin tu ayuda...¿no te parece?
Ferdy escribió:Vaya, pues me apunto a la moda de capitanquartz de la escritura insustancial...¿o no?. Si el compañero no upea el post, tu no lo ves, y gimbo se queda con un post perdido y sin tu ayuda...¿no te parece?
Incorrecto. El post ya estaba en la lista de 'dar una respuesta decente', el compañero solo ha conseguido pasarlo a la lista de 'dar una respuesta'. Lo que pasa es que las respuestas decentes llevan algo más de tiempo para articular que un simple "no se de qué hablas, pero voy a dar por saco a ver si otro sabe".
Así que no, no le ha ayudado, ha ido en su contra :/
- ferdy
gimbo escribió:Al final me decanto por la solución del bloque try.. catch, la verdad es que no queda mal, detecta justo lo que quería, pero ahora (empanao de mi) no sé como eliminar "a la fuerza" el hilo. También me serviría un operación de "¡matar todos los hilos que quiero salir!"
Ah, una cosa está clara lo lógico es que no pete, pero ahora estoy añadiendo cosas y es bastante común que peten partes y es un rollo tener los hilos ocupando puertos...., pero prometo que con el tiempo lo iré arreglando
Saludotes y muchas gracias por ayudarme
¿no te vale thread.exit() ?
Es tu opinión (no la verdad), y no la comparto. Los motivos por los que piensas que rescatar un post con el objetivo de que alguien no se quede sin ayuda, es evidente que los dezconozco. Que tú tienes una lista de post relevantes a los que un futuro darás cobertura, es algo que creo que el resto de foreros no hace, con lo cual, la acción de capitanquartz estadísticamente es más útil que porculera.
Ferdy escribió:¿no te vale thread.exit() ?
Esa es la idea, una vez consiga sincronizarlos para que ejecuten exit cuando el proceso maestro detecte una situación 'que no sabe manejar'.Es tu opinión (no la verdad), y no la comparto. Los motivos por los que piensas que rescatar un post con el objetivo de que alguien no se quede sin ayuda, es evidente que los dezconozco. Que tú tienes una lista de post relevantes a los que un futuro darás cobertura, es algo que creo que el resto de foreros no hace, con lo cual, la acción de capitanquartz estadísticamente es más útil que porculera.
Yo creo que lo que consigues es cansar al personal...
- ferdy
Has escrito 2 paridas seguidas en un mismo post
Ferdy escribió:Has escrito 2 paridas seguidas en un mismo post
Tus contribuciones a este, y otros hilos, si que son buenas. jaja
f5inet escribió:entonces al final ¿quien la tiene mas gorda? que no me ha quedado claro... ¿ferdy o atlante?Ferdy escribió:¿La cabeza? Este que suscribe.
Atlante escribió:Saludos y fin por mi parte