python udp broadcast labview

La transmisión de Python UDP no envía



broadcast labview (1)

No necesita connect() a un socket UDP, necesita:

cs.sendto(data, (''255.255.255.255'', 5455))

EDITAR: Esto parece funcionar para mí:

from socket import * cs = socket(AF_INET, SOCK_DGRAM) cs.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) cs.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) cs.sendto(''This is a test'', (''255.255.255.255'', 54545))

En otra máquina ejecuté tcpdump:

tcpdump -i eth1 port 54545 -XX listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 14:04:01.797259 IP 10.22.4.45.33749 > 255.255.255.255.54545: UDP, length 14 0x0000: ffff ffff ffff f0de f1c4 8aa6 0800 4500 ..............E. 0x0010: 002a 0000 4000 4011 2c81 0a16 042d ffff .*..@.@.,....-.. 0x0020: ffff 83d5 d511 0016 fe38 5468 6973 2069 .........8This.i 0x0030: 7320 6120 7465 7374 0000 0000 s.a.test....

Puedes ver el texto en la carga útil. Además de los nombres de difusión dst Ethernet y IP.

Estoy intentando transmitir UDP desde un programa Python a dos programas LabView. Parece que no puedo enviar la transmisión y no estoy seguro de dónde está equivocada la inicialización del socket, la transmisión parece bastante simple. Por lo que puedo ver, no hay datos recibidos por las otras PC. Además, necesitaré este programa para recibir datos de las otras PC en el futuro. Parece que eso no debería complicar las cosas, pero cada paso del camino ha sido complicado para mí.

Antecedentes: no tengo experiencia en software, esto es solo algo que me asignaron en el trabajo. Cualquier ayuda es apreciada. El código está abajo. Python 2.7.

from threading import Thread import time from socket import * cs = socket(AF_INET, SOCK_DGRAM) cs.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) cs.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) cs.connect((''<broadcast>'', 5455)) while 1: cmd = int(raw_input(''send: '')) if (cmd == 1): cs.send(''1'') time.sleep(1)