friends I have a pair of simple python programs as follows:
#!/usr/bin/python # broadcast.py import socket from ctypes import * import random class PurgeData(Structure): _fields_ = [("press",c_int), ("ticks",c_int), ("volume",c_float)] myPort = 10756 sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) addr = ('localhost',myPort) #sock.sendto(data,addr) presdata = PurgeData() presdata.press = 0 presdata.ticks = 100 for msg in range(1,20): presdata.press = presdata.press+1 presdata.ticks = presdata.ticks+1 presdata.volume = random.random() sock.sendto(presdata,addr) #-------------------- #!/usr/bin/python # Receiver import socket from ctypes import * class PurgeData(Structure): _fields_ = [("press",c_int), ("ticks",c_int), ("volume",c_float)] myPort = 10756 sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) addr = ('localhost',myPort) sock.bind(addr) presdata=PurgeData() while True: data,addr = sock.recvfrom(1024) memmove(addressof(presdata),data.strip(),len(data.strip())) print presdata.press, presdata.ticks, presdata.volume --------------------- When I tried to run this I get some bizarre results: 1 101 0.343009024858 2 102 0.36397305131 3 103 0.495895296335 4 104 0.372055351734 5 105 0.933839201927 6 106 0.931187808514 7 107 0.876732826233 8 108 0.298638045788 1828716544 -754974720 0.183644190431 1845493760 1660944384 0.186560109258 1862270976 1056964608 0.18631502986 1879048192 1728053248 0.186902835965 1895825408 2097152000 0.18658298254 14 114 0.407857120037 15 115 0.833854913712 16 116 0.00646247947589 17 117 0.297783941031 18 118 0.58082228899 19 119 0.61717569828 the received data for the messages 9 thru 13 are not as expected. I wonder if anyone can see what I am doing wrong? Appreciate any hints. thanks, srini -- https://mail.python.org/mailman/listinfo/python-list