> 
> Yes, it seems you have convinced me. I have one final question however.
> Currently a UDP packet is being received as a single string of mixed
> datatypes. The recipient looks at the value of the first byte to
> determine the type of packet. Here are some made-up examples of packet
> contents:
> 
> Byte=0, String=?, String=?
> Byte=1, Short=?, Short=?, Float=?, Float=?, Byte=?, Byte=?
> Byte=2, Byte=?, Byte=?, Float=?, Float=?
> 
> The three packets have different total sizes and different datatype
> patterns. The only reliable constant is that first identifying byte.
> There are hundreds of packet types to minimize bandwidth, each one
> tailored to a specific purpose.
> 
> Is it possible for the recipient to load the UDP packet into a structure
> without knowing which structure it needs to go in to? Basically, if I
> know the first value in the structure is always a byte, can only that
> byte be read before dumping the entire thing back into a structure?

Yes.

Reading and writing are not done the same way with UdpSocket.

When you write a bunch of bytes, one Udp message is made from all the bytes 
and sent.

When something is received from an Udp socket, the data is buffered, and you 
can read it with several READ instructions until EOF is raised.

So, you can do:

        Public Struct Message0
          ...
        End Struct
        
        Public Sub MyUdpSocket_Read
        
          Dim iType As Integer
        
          iType = Read #MyUdpSocket As Byte
        
          Select Case iType
            Case 0
              ReadMessage0
            Case 1
              ReadMessage1
            ...
          End Select
        
        End
        
        Private Sub ReadMessage0()
        
          Dim tMessage As Message0
        
          tMessage = Read #MyUdpSocket As Message0
          ...
        
        End
        
        ...

> 
> And yes, I had my first Slashdot article posted yesterday. Ken at Ultima
> Aiera said he got a record for hits to his site because of it...nice.

Cool. :-)

-- 
Benoît Minisini

------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to