Bonjour,
Voici mon problème: j'ai un soucis de chargement lors que j'exécute mon application qui crée un serveur embarqué où je peux charger un fichier HTML. Le problème c'est que lorsque j'essaie de charger mon fichier ou bien de charger la page d’accueil (127.0.0.1:port), je dois attendre quelques (longues) secondes avant que la page ne soit entièrement chargée, et je ne comprends pas.
Voici les codes:
Procedure ServeurHTTP()
nPort est un entier
nPort = 25565
SI PAS SocketCrée(csSocketServeur, nPort) ALORS
SAI_HTTPTracer += ErreurInfo(errInfo)+RC
SINON
ThreadExecute(csThreadClient, threadNormal, AccepteConnexionClient)
SAI_HTTPTracer += ChaîneConstruit("Serveur démarré sur le port %1", nPort)+RC
FIN
Procedure MessageClient(SocketClient)
sMessageRecu est une chaîne
sMessNavigateur est une chaîne
sDemandeRequete est une chaîne
QUAND EXCEPTIONEXCEPTION DANS
BOUCLE
sMessageRecu = SocketLit(SocketClient,Vrai)
SAI_HTTPTracer += sMessageRecu + RC
SI Majuscule(sMessageRecu) [= "GET" ALORS
sDemandeRequete = SansEspace(sMessageRecu[[4 À Position(sMessageRecu, "HTTP/")-1]])
SI fFichierExiste(SansCaractère(sDemandeRequete,"/")) ALORS
sMessNavigateur = "HTTP/1.0 200 OK"+RC
sMessNavigateur += "Serveur : HTTP en Windev"+RC
sMessNavigateur += "Content-Type : "+ClassementExtension(fExtraitChemin(SansCaractère(sDemandeRequete, "/"), fExtension))+RC
sMessNavigateur += "Content-Lenght : "+fTaille(SansCaractère(sDemandeRequete, "/"))+RC
sMessNavigateur += RC
sMessNavigateur += fChargeBuffer(SansCaractère(sDemandeRequete, "/"))
SINON
sMessNavigateur = "HTTP/1.0 404 Found"+RC
sMessNavigateur += "Serveur : HTTP en Windev"+RC
sMessNavigateur += "Content-Type : "+ClassementExtension(".html")+RC
sMessNavigateur += "Content-Lenght : 50"+RC
sMessNavigateur += RC
sMessNavigateur += "<body><h1>404 : Fichier introuvable</h1></body>"
FIN
SocketEcrit(SocketClient,sMessNavigateur)
FIN
SORTIR
FIN
FAIRE
SI SocketExiste(SocketClient) ALORS
SocketFerme(SocketClient)
FIN
FIN
Procedure ClassementExtension(sExtensionReq est une chaîne)
SELON sExtensionReq
CAS ".html",".htm"
RENVOYER "text/html"
CAS ".jpg", ".jpeg"
RENVOYER "image/jpeg"
CAS ".gif"
RENVOYER "image/gif"
CAS ".json"
RENVOYER "application/json"
AUTRE CAS
RENVOYER "application/octet-stream"
FIN
Procedure AccepteConnexionClient()
sSocketClient est une chaîne
TANTQUE SocketAttendConnexion(csSocketServeur)
sSocketClient = SocketAccepte(csSocketServeur)
SocketChangeModeTransmission(csSocketServeur, SocketSansMarqueurFin)
ThreadExecute(sSocketClient, threadNormal, MessageClient,sSocketClient)
FIN
Je ne comprends pas d'où viens la lenteur de chargement de la page, sachant que le code fonctionne et que j'arrive à charger un fichier .json mais il faut que j'attends 5 à 6 secondes pour charger 2 valeurs dans ce fichier...
Merci de votre aide.
PS: Lorsqu'il s'agit de mon fichier HTML, 2 min après, toujours pas de fichier chargé.