[Gambas-user] Problem with READ on a UDP socket
Benoit Minisini
gambas at ...1...
Tue Nov 4 16:51:14 CET 2008
On mardi 4 novembre 2008, Gareth Bult wrote:
> Erm, Ok .. I was expecting a buffer layer between socket library and Gambas
> .. but that aside, If I'm expecting a binary packet via a UDP socket, for
> example;
>
> <type> - 1 byte
> <number> - 4 bytes
> <size> - 2 bytes
> <payload> - up to 1024, dictated by <size>
>
> Can anyone tell me in Gambas how I would go about transferring data from
> the packet to Gambas Variables?
>
> READ #$udp,data,lof($udp)
>
> Would give me the contents of the packet as a string, but I can't seem to
> see an effective / efficient way of breaking it down from there .. anyone ?
>
> tia
> Gareth.
>
Without that buffer, it is brain-fucking:
DIM sData AS String
DIM pBuffer AS Pointer
DIM iType AS Byte
DIM iNumber AS Integer
...
READ #$udp, sData, Lof($udp)
pBuffer = Alloc(len(sData))
WRITE #pBuffer, sData, len(sData)
READ #pBuffer, iType
READ #pBuffer, iNumber
...
Free(pBuffer)
I will try to fix that in Gambas 3, then backporting all gb.net fixes to
Gambas 2 once they are done.
Regards,
--
Benoit Minisini
More information about the User
mailing list