|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
socket UDP - lenteur avec SocketEcrit |
Débuté par jean-michel.deglorie, 16 avr. 2005 03:00 - 5 réponses |
| |
| | | |
|
| |
Posté le 16 avril 2005 - 03:00 |
Bonsoir,
J'utilise une appli Windev pour dialoguer en UDP avec un composant serveur écrit dans un autre langage. Mon code client se résume à cela : -------------------------------------- SI PAS SocketCréeUDP(Ma_Socket,Port_Ma_Socket,NetAdresseIP()) ALORS Erreur("Erreur... " + ErreurInfo(errMessage)) SINON // Traitement ... SI SocketEcrit(Ma_Socket,Ma_Chaine,IP_Serveur,Port_Serveur) ALORS Resultat = SocketLit(Ma_Socket,Faux,500) .... FIN ... FIN ... SocketFerme(ma_socket) -------------------------------------- Mon pb : La fonction SocketEcrit est très lente (plus de 2 sec pour envoyer quelques caractères) alors que la fonction SocketLit est quasi instantanée. Je me suis assuré du bon fonctionnement de la partie serveur en écrivant dans un autre langage la même routine. Donc RAS du coté serveur. Le pb de lenteur provient bien de mon appli windev et de cette fonction SocketEcrit. Est-ce que quelqu'un peut m'aider à comprendre le phénomène et à trouver une solution à ce pb de lenteur ? Merci pas avance JMD |
| |
| |
| | | |
|
| | |
| |
Posté le 02 mai 2005 - 12:46 |
JM Deglorie a formulé la demande :
Bonsoir,
J'utilise une appli Windev pour dialoguer en UDP avec un composant serveur écrit dans un autre langage. Mon code client se résume à cela : -------------------------------------- SI PAS SocketCréeUDP(Ma_Socket,Port_Ma_Socket,NetAdresseIP()) ALORS Erreur("Erreur... " + ErreurInfo(errMessage)) SINON // Traitement ... SI SocketEcrit(Ma_Socket,Ma_Chaine,IP_Serveur,Port_Serveur) ALORS Resultat = SocketLit(Ma_Socket,Faux,500) .... FIN ... FIN .. SocketFerme(ma_socket) -------------------------------------- Mon pb : La fonction SocketEcrit est très lente (plus de 2 sec pour envoyer quelques caractères) alors que la fonction SocketLit est quasi instantanée. Je me suis assuré du bon fonctionnement de la partie serveur en écrivant dans un autre langage la même routine. Donc RAS du coté serveur. Le pb de lenteur provient bien de mon appli windev et de cette fonction SocketEcrit. Est-ce que quelqu'un peut m'aider à comprendre le phénomène et à trouver une solution à ce pb de lenteur ? Merci pas avance JMD
J'ai le même problème. Quelqu'un a-t-il la solution ?
-- Eric Laurent nospam.laurent.systel@wanadoo.fr (enlever nospam.) |
| |
| |
| | | |
|
| | |
| |
Posté le 02 mai 2005 - 14:03 |
le serveur demande peut être un caractère de fin de chaine spécifique avant de pouvoir déterminer la fin du socketecrit et la libération pour la commande suivant. voir aussi du coté de SocketChangeModeTransmission() (normalement n'influe que sur socketlit mais à tester quand me^me)
"Eric Laurent" <nospam.laurent.systel@wanadoo.fr> a écrit dans le message de news:mn.12867d55b12daf89.17482@wanadoo.fr...
JM Deglorie a formulé la demande : Bonsoir,
J'utilise une appli Windev pour dialoguer en UDP avec un composant serveur
écrit dans un autre langage. Mon code client se résume à cela : -------------------------------------- SI PAS SocketCréeUDP(Ma_Socket,Port_Ma_Socket,NetAdresseIP()) ALORS Erreur("Erreur... " + ErreurInfo(errMessage)) SINON // Traitement ... SI SocketEcrit(Ma_Socket,Ma_Chaine,IP_Serveur,Port_Serveur) ALORS Resultat = SocketLit(Ma_Socket,Faux,500) .... FIN ... FIN .. SocketFerme(ma_socket) -------------------------------------- Mon pb : La fonction SocketEcrit est très lente (plus de 2 sec pour envoyer quelques > > caractères) alors que la fonction SocketLit est quasi instantanée. Je me suis
assuré du bon fonctionnement de la partie serveur en écrivant dans un autre > > langage la même routine. Donc RAS du coté serveur. Le pb de lenteur provient
bien de mon appli windev et de cette fonction SocketEcrit. Est-ce que quelqu'un peut m'aider à comprendre le phénomène et à trouver une solution à
ce pb de lenteur ? Merci pas avance JMD
J'ai le même problème. Quelqu'un a-t-il la solution ? -- Eric Laurent nospam.laurent.systel@wanadoo.fr (enlever nospam.) |
| |
| |
| | | |
|
| | |
| |
Posté le 02 mai 2005 - 14:17 |
David B a présenté l'énoncé suivant :
le serveur demande peut être un caractère de fin de chaine spécifique avant de pouvoir déterminer la fin du socketecrit et la libération pour la commande suivant. voir aussi du coté de SocketChangeModeTransmission() (normalement n'influe que sur socketlit mais à tester quand me^me)
Merci pour ta réponse. Malheureusement, SocketChangeModeTransmission() ne peut pas être appliqué. Extrait de l'aide: Remarque : Sockets UDP : Les sockets de type UDP sont toujours de type "Socket sans marqueur". La fonction SocketChangeModeTransmission ne doit pas être utilisée avec des sockets de type UDP.
Une autre idée ?
-- Eric Laurent nospam.laurent.systel@wanadoo.fr (enlever nospam.) |
| |
| |
| | | |
|
| | |
| |
Posté le 30 décembre 2005 - 21:59 |
J'ai constaté le même dysfonctionnement, il y a 4,5 secondes d'utilisées par la fonction SocketEcrit pour interroger un DNS (qui n'a bien sûr la pa réponse à la question) puis, enfin, le ScocketEcrit s'apperçoit qu'il a à faire à une adresse IP, et exécute la commande.
Ce phénomène disparaît en ajoutant des résolutions dans c:\windows\system32\drivers\etc\hosts
ce qui n'est bien sûr pas une solution.
Parfois, si l'adresse IP est passé en tant que chaîne avec des guillemets, ça peut passer.
Bonne chance
Idem pour les fonctions "httprequête" |
| |
| |
| | | |
|
| | |
| |
Posté le 12 janvier 2006 - 18:21 |
oui j'ai le même problème car j'ai une liaison avec un automate Omron. Pour palier à cela, dans les config de la connexion réseau , je desactive Netbios (parametre IP/TCP) defaut ---> desactiver. On passe de 4,5s à 0,002s beaucoups mieux L'inconveniant ne pas eteindre le PC ou se deconnecter du reseau car perte du reseau Si quelqu'un a une autre solution ??? |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|