Of course!!!! Cut and paste issue. Anyhow, i will look at the struct module. cheers, srini
On Thursday, May 29, 2014 7:09:21 PM UTC-4, MRAB wrote: > On 2014-05-29 23:08, rasikasriniva...@gmail.com wrote: > > > 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 > > > > > I don't understand why you're using the .strip method. That's for > > stripping whitespace from text, but you're not sending and receiving > > text, you're sending and receiving binary data. > > > > Personally, I'd use the struct module. -- https://mail.python.org/mailman/listinfo/python-list