[Gambas-user] gb3: sending variable of date datatype over UDP
Kevin Fishburne
kevinfishburne at ...1887...
Tue Jun 7 05:56:12 CEST 2011
Any reason this code wouldn't work?
' Server-side:
UDP_Write_56(pip[p], pport[p], tsid[p], Date)
Public Sub UDP_Write_56(ip As String, port As Integer, id As Byte,
serverdate As Date)
' Send "date update" transaction to specified IP address and port
over UDP.
' Define target's IP address and port.
udp.TargetHost = ip
udp.TargetPort = port
' Send the transaction.
udp.Begin
Write #udp, id As Byte
Write #udp, 56 As Byte
Write #udp, serverdate As Date
udp.Send
End
' Client-side:
' tsdata = 8-byte date string from received UDP packet
worlddate = Date@(Convert.Reverse(tsdata))
Public Function Reverse(data As String) As String
' Reverse the order of the passed bytes.
' General declarations.
Dim counter As Byte ' Generic counter.
Dim length As Byte ' Length of the passed string.
Dim reversed As String ' The reversed string.
' Reverse the string
length = Len(data)
For counter = length To 1 Step -1
reversed = reversed & Mid$(data, counter, 1)
Next
' Return the reversed value.
Return reversed
End
If I send and receive it as a float it works, but doesn't give me the
time (date only). If I send/receive it as a date it gives me a totally
wrong value, such as "10883/26232/-22744 285:08:28". Combinations of the
two give me different incorrect values.
This technique of reversing bytes received as UDP packets into different
datatypes has worked for everything but the date datatype. Any ideas why
this is? I need the clients to know what time it is on the server so
they can render day/night cycles appropriately.
--
Kevin Fishburne
Eight Virtues
www: http://sales.eightvirtues.com
e-mail: sales at ...1887...
phone: (770) 853-6271
More information about the User
mailing list