import socket import math import sys # import signal servidor = sys.argv[1] puerto = int(sys.argv[2]) # Create a UDP socket sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server_address = (servidor, puerto) # aca cambiar para probar en aragorn.elo.utfsm.cl en vez de local host # para mandar numeros se puede mandar en string con str(number) y el sevidor lo tranforma con Float(string) de manera facil #definir como terminar un programa en python finish = False # https://docs.python.org/3/library/signal.html # https://code-maven.com/catch-control-c-in-python # def exit_func(): # finish = True # print("el valor de finish cambio a "+str(finish)) # return # signal.signal(signal.SIGINT, exit_func) // por defecto es keyboardinterrupt t= 0.0 nPeriodo=0 delta= float(sys.argv[3]) try: while(not finish): try: if((t>(nPeriodo)) and (t <= (nPeriodo + 0.500000000001) )): num = (2.0*t - 2.0*nPeriodo) else: num= 0 nPeriodo = math.floor(t) t+=delta sendData = str.encode(str(num)) #str.encode es para tranformar de string a bytes # Send data print('sending {!r}'.format(sendData)) sent = sock.sendto(sendData, server_address) except KeyboardInterrupt: finish = True finally: print('closing socket') sock.close() print('end program')