Binary data exchange
RasikaSrinivasan at gmail.com
RasikaSrinivasan at gmail.com
Thu May 29 19:25:40 EDT 2014
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, RasikaSrinivasan at 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.
More information about the Python-list
mailing list