On 04/03/2011 08:46 PM, Benoît Minisini wrote: > Finally I come with a solution. Well I hope. > > I added three new methods to the Stream class (and so to its child classes: > File, Socket, UdpSocket...) in revision #3730. > > Stream.Begin(), Stream.Send() and Stream.Drop(). > > All WRITE instructions between a Stream.Begin() and a Stream.Send() will be > merged, and send in one shot when Stream.Send() is called. > > Stream.Drop() just cancels that process. > > That way, to forge and send a packet to your UdpSocket, instead of doing > something like: > > Write #MyUdpSocket, Chr$(42)& MkShort$(A)& MkInt$(B)& MkFloat$(C) > & SomeString ... > > You will do: > > MyUdpSocket.Begin > Write #MyUdpSocket, 42 As Byte > Write #MyUdpSocket, A As Short > Write #MyUdpSocket, B As Integer > Write #MyUdpSocket, C As Float > Write #MyUdpSocket, SomeString, Len(SomeString) > MyUdpSocket.Send > > To read the packet, just use the Read instruction. The UdpSocket already > buffers the received packet internally. > > All that should allow you to do the same thing as before with Mk*() functions, > with more lines of code, but with endianness support, without adding too much > code to the interpreter. > > Please tell me that you can do something with that, I have a release candidate > to prepare. :-)
Excellent, that's an elegant solution. Thanks! Is it possible to read one or more values from the beginning of the packet normally, then read the remaining data into a single string? Something like this: Public Sub UDP_Read() Dim id As Byte Dim type As Byte Dim data As String Read #udp, id As Byte Read #udp, type As Byte Read #udp, data, Lof(udp) - 2 End If this works (and I don't see why it wouldn't), then everything is fixed. I can have a transaction array that can store any transaction type by saving the "payload" as a string and decoding it later with the *@() functions. -- Kevin Fishburne Eight Virtues www: http://sales.eightvirtues.com e-mail: sa...@eightvirtues.com phone: (770) 853-6271 ------------------------------------------------------------------------------ Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user