Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/03/2009, 11:41
meneillos
 
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: multi procesos en python

Pongo un ejemplo:

Código python:
Ver original
  1. import socket
  2. import threading
  3. class MiThread(threading.Thread):
  4.     def run(self):
  5.         printf("Ejecutando")
  6.     def transmitir(self):
  7.             #datos en crudo, no hacemos procesamiento de datos ni nada: todo se envia a todos
  8.             if not (s == None):
  9.                 i = 0
  10.                 while i <= numclientes:
  11.                     sc.send(self.aceleracion.encode())
  12.                     sc.send(self.aceleracion.encode())
  13.                     sc.send(self.aceleracion.encode())
  14.                    
  15.     def __init__(self,direccion,velocidad,aceleracion):
  16.         threading.Thread.__init__(self)
  17.        
  18.         self.direccion = direccion
  19.         self.velocidad = velocidad
  20.         self.aceleracion = aceleracion
  21.         print ("El vehiculo tiene una velocidad de",velocidad, "y una aceleracion de", aceleracion,"siguiendo la direccion", direccion)
  22.         s = socket.socket()
  23.         puerto = 50005
  24.         puertoNuevo = puerto + 1
  25.         s.bind(('localhost',puertoNuevo))
  26.         s.listen(3) #lo dejamos en 3 de momento, puesto que usaremos 3 objetos
  27.         #El metodo accept bloquea la ejecucion a la espera de conexiones
  28.         #accept devuelve un objeto socket y una tupla Ip y puerto
  29.         #Se necesita hacer forks para los distintos vehiculos, porque el metodo
  30.         print("Conexion inicializada")
  31.         #socket.accept() es BLOQUEANTE)
  32.         sc, addr = s.accept()
  33.        
  34.        
  35.  
  36. vehiculo1 = MiThread("norte",20,0)
  37. vehiculo1.start()
  38. vehiculo2 = MiThread("norte",30,0)
  39. vehiculo2.start()
  40. vehiculo3 = MiThread("sur",60,0)
  41. vehiculo3.start()

En este ejemplo que quiero que ese vehiculo pueda escuchar (con el metodo accept() ) pero a la vez pueda yo ejecutar el metodo transmitir (supongo que será con otro hilo, pero la verdad no se muy bien como se hace), y así para los 3 vehiculos
Además, ni siquiera llega a ejecutarse el metodo run(self) donde deberia imprimir por pantalla el "Ejecutando" ese...