eigentlich ist es ja ganz simple. ich verstehe nur nicht wo die variable limit in purebasic liegt.
habe vor einige tagen angefangen purebasic zu lernen. klappt ja eigentlich ganz gut, einige kleine projekte lassen sich umschreiben auf purebasic und bin immer wieder überrascht wie einfach das ist.
doch irgendwie klappt es nicht, wenn ich versuche die daten von zeitserver in unix timestamp um zu konvertieren
Code: Alles auswählen
Procedure GetINetTime()
Protected sHex.s
Protected TimeValue.f
#SNTPHost = "ntp1.fau.de"
#SNTPPort = 37
If (InitNetwork() = 0)
; TCP/IP nicht vorhanden, zurück zum HQ
ProcedureReturn 1
EndIf
ConnectionID = OpenNetworkConnection(#SNTPHost, #SNTPPort)
If ConnectionID
; verbindung timeout in 30sekunden
TimeOut = Date() + 30
Else
; Verbindung kann nicht hergestellt werden
; versuchen wir später nochmal, aber erstmal zurück
ProcedureReturn 2
EndIf
sData = AllocateMemory(100)
Repeat
CloseConnection = NetworkClientEvent(ConnectionID)
Select CloseConnection
Case 2
ReceiveNetworkData(ConnectionID, sData, 100)
sHex = Bin2Hex(PeekS(sData))
TimeValue = Hex2Dec("7FFFFFFF") - Hex2Dec(sHex) - Hex2Dec("7FFFFFFF")
TimeValue = Abs(TimeValue)
Debug TimeValue
Timestamp = TimeValue - 2208988800
Debug Timestamp
CloseConnection = 1
Default
If (Date() >= TimeOut)
CloseConnection = 1
EndIf
EndSelect
Delay(1)
Until CloseConnection = 1
FreeMemory(sData)
CloseNetworkConnection(ConnectionID)
ProcedureReturn 0
EndProcedure
kann mir mal jemand ein tip geben?
oder ist das 'features' von PureBasic? Denn in andere Programmiersprache funktioniert ja tadellos