Pongo un ejemplo:
Código python:
Ver originalimport socket
import threading
class MiThread(threading.Thread):
def run(self):
printf("Ejecutando")
def transmitir(self):
#datos en crudo, no hacemos procesamiento de datos ni nada: todo se envia a todos
if not (s == None):
i = 0
while i <= numclientes:
sc.send(self.aceleracion.encode())
sc.send(self.aceleracion.encode())
sc.send(self.aceleracion.encode())
def __init__(self,direccion,velocidad,aceleracion):
threading.Thread.__init__(self)
self.direccion = direccion
self.velocidad = velocidad
self.aceleracion = aceleracion
print ("El vehiculo tiene una velocidad de",velocidad, "y una aceleracion de", aceleracion,"siguiendo la direccion", direccion)
s = socket.socket()
puerto = 50005
puertoNuevo = puerto + 1
s.bind(('localhost',puertoNuevo))
s.listen(3) #lo dejamos en 3 de momento, puesto que usaremos 3 objetos
#El metodo accept bloquea la ejecucion a la espera de conexiones
#accept devuelve un objeto socket y una tupla Ip y puerto
#Se necesita hacer forks para los distintos vehiculos, porque el metodo
print("Conexion inicializada")
#socket.accept() es BLOQUEANTE)
sc, addr = s.accept()
vehiculo1 = MiThread("norte",20,0)
vehiculo1.start()
vehiculo2 = MiThread("norte",30,0)
vehiculo2.start()
vehiculo3 = MiThread("sur",60,0)
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...