NB : je n'ai pas besoin de lancer la commande
net time ...
ce n'est pas ce que je cherche !
le code
Code : Tout sélectionner
;-*************************
;-*** ***
;-*** UPTIME - Flaith ***
;-*** 15/01/2006 ***
;-*** ***
;-*************************
;--> CONSTANTES & GLOBALES
#CP = "134.59.1.5" ; ntp.unice.fr
#PSERV = 37
Global wVersionRequested.w
;--> MAKEWORD : concatene 2 valeurs byte en un word
Procedure.w MAKEWORD(LoByte.b, HiByte.b)
If HiByte & $80
ret_value = ((HiByte * $100) + LoByte) | $FFFF0000
Else
ret_value = (HiByte * $100) + LoByte
EndIf
ProcedureReturn ret_value
EndProcedure
; ******************************************************************************************
;-Initialise Winsock
wsaData.WSADATA ; WSADATA = structure de données pour
; l'implementation des sockets
wVersionRequested = MAKEWORD(1, 1) ; version WINSOCK.DLL 1.1 mini
If (Result = WSAStartup_(wVersionRequested, @wsaData)) <> #NO_ERROR
MessageRequester("Information", "La DLL WINSOCK ne supporte pas cette version !",0)
End
EndIf
;-Creation d'un socket
socket = SOCKET_(#AF_INET, #SOCK_STREAM, #IPPROTO_TCP)
If socket = #INVALID_SOCKET
MessageRequester("Erreur", "Erreur socket(): " + Str(WSAGetLastError_()),0)
WSACleanup_()
End
EndIf
;-Connection au socket
*ptr = sin.sockaddr_in
sin\sin_family = #AF_INET
sin\sin_addr = inet_addr_(#CP) ; converti une adresse IP en type "in_add"
sin\sin_port = htons_(#PSERV) ; converti au bon format et dans le bon ordre
If connect_(socket, *Ptr, SizeOf(sockaddr_in)) = #SOCKET_ERROR
MessageRequester("Erreur", "Impossible de se connecter au serveur " + #CP,0)
closesocket_(socket)
End
EndIf
;-Lecture des données
buffer.s = Space(32) ; 4 octets
recu = recv_(socket, @buffer, 4, 0) ; reception des données via le socket
time_ = ntohl_(buffer) ; converti au bon format et dans le bon ordre
; // ***** c'est ici , cette valeur qui me pose problème
time_ = time_ - 2208988800 ; soustrait 1970.0 - 1900.0
tt = Date()
Heure.s=FormatDate("%hh:%ii:%ss",time_)
;-Affichage de l'heure reçu
MessageRequester("Info","bytesRecv = "+Str(recu)+Chr(13)+Chr(10)+"time_ = "+Str(time_)+Chr(13)+Chr(10)+"Date = "+Str(tt)+Chr(13)+Chr(10)+"Heure = "+Heure,0)
closesocket_(socket)
WSACleanup_()
