|
PROFESSIONAL NEWSGROUPS WINDEV, WEBDEV and WINDEV Mobile |
| | | | | |
socket UDP - lenteur avec SocketEcrit |
Started by JM Deglorie, Apr., 16 2005 3:00 AM - 5 replies |
| |
| | | |
|
| |
Posted on April, 16 2005 - 3:00 AM |
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 |
| |
| |
| | | |
|
| | |
| |
Posted on May, 02 2005 - 12:46 PM |
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.) |
| |
| |
| | | |
|
| | |
| |
Posted on May, 02 2005 - 2:03 PM |
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.) |
| |
| |
| | | |
|
| | |
| |
Posted on May, 02 2005 - 2:17 PM |
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.) |
| |
| |
| | | |
|
| | |
| |
Posted on December, 30 2005 - 9:59 PM |
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" |
| |
| |
| | | |
|
| | |
| |
Posted on January, 12 2006 - 6:21 PM |
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 ??? |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|