SendNetworkData() fichier de 10Ko donnée corrompu
SendNetworkData() fichier de 10Ko donnée corrompu
Je me suis fais un serveur web xml, le formatage se fait avec xslt côté client.
Je rencontre un probléme lors d'envoi d'un fichier gif de 18600 Octets ou d'autre type.
J'envoi les fichiers demander par le client avec SendNetWorkData(), mais des que le fichier dépasse environ 10Ko
celui-ci n'est pas envoyé au complet. le retour de la commande SendNetWorkData() m'indique une taille inférieur au fichier d'origine d'ou le bloquage du "browser".
Ce phènoméne ne se produit que sous linux et non windows.
Le serveur sous linux -> browser sous windows = donnée corrompu
Le serveur sous windows -> browser sous linux pas d'erreur.
Pour vérifier si cela ne venais pas de mon programme ; j'ai utiliser l'exemple de purebasic webserver atomic.
J'ai rajouter dans le fichier "index.html" une balise "img" et inclu le fichier image dans le répertoire "www".
Malgrés l'envoie d'une fichier html et d'une image au client le résultat fût identique.Linux corrompu et windows OK.
J'ai posté dans le forum anglais dans bug linux.
On m'a repondu qu'il fallait traiter les erreurs d'envoi.
Je nage un peu là.
Je pensais que la commande "SendNetWorkData()" gérer l'envoi que je n'avais pas à m'en occupé.
Deplus pourquoi windows cela fonction et pas sous linux.
Mon code est prévu pour fonctionner sous linux - windows et mac; pas de code spécifique par machine.
Est-ce-que "SendNetWorkData()" est bien approprié pour communiqué avec un "browser"
Merci .
Je rencontre un probléme lors d'envoi d'un fichier gif de 18600 Octets ou d'autre type.
J'envoi les fichiers demander par le client avec SendNetWorkData(), mais des que le fichier dépasse environ 10Ko
celui-ci n'est pas envoyé au complet. le retour de la commande SendNetWorkData() m'indique une taille inférieur au fichier d'origine d'ou le bloquage du "browser".
Ce phènoméne ne se produit que sous linux et non windows.
Le serveur sous linux -> browser sous windows = donnée corrompu
Le serveur sous windows -> browser sous linux pas d'erreur.
Pour vérifier si cela ne venais pas de mon programme ; j'ai utiliser l'exemple de purebasic webserver atomic.
J'ai rajouter dans le fichier "index.html" une balise "img" et inclu le fichier image dans le répertoire "www".
Malgrés l'envoie d'une fichier html et d'une image au client le résultat fût identique.Linux corrompu et windows OK.
J'ai posté dans le forum anglais dans bug linux.
On m'a repondu qu'il fallait traiter les erreurs d'envoi.
Je nage un peu là.
Je pensais que la commande "SendNetWorkData()" gérer l'envoi que je n'avais pas à m'en occupé.
Deplus pourquoi windows cela fonction et pas sous linux.
Mon code est prévu pour fonctionner sous linux - windows et mac; pas de code spécifique par machine.
Est-ce-que "SendNetWorkData()" est bien approprié pour communiqué avec un "browser"
Merci .
Re: SendNetworkData() fichier de 10Ko donnée corrompu
Salut & bienvenu, le problème viens de ta routine d'envois ou de réception. Chez moi le réseau fonctionne sans problème.
Quel protocole utilise tu ?
Quel protocole utilise tu ?
Re: SendNetworkData() fichier de 10Ko donnée corrompu
Salut,
J'utilise le protocole http sur le port 8001.
Je me suis basé sur l'exemple Atomic server.
Le fait que cela ne fonctionne pas avec cette exemple m'intrigue!
as tu un exemple simple qui fonctionne chez toi?
Peut êtres que le souci viens de mon linux Ubuntu serveur 9.04.
J'ai vérifier; j'ai bien le compilateur 4.50 linux.
J'utilise le protocole http sur le port 8001.
Je me suis basé sur l'exemple Atomic server.
Le fait que cela ne fonctionne pas avec cette exemple m'intrigue!
as tu un exemple simple qui fonctionne chez toi?
Peut êtres que le souci viens de mon linux Ubuntu serveur 9.04.
J'ai vérifier; j'ai bien le compilateur 4.50 linux.
Re: SendNetworkData() fichier de 10Ko donnée corrompu
Salut , quand je parle de protocole , c'est UDP ou TCP.
j'ai pas d'exemple direct sous la main , le mieux c'est que tu poste ton code afin de pouvoir t'aider.
j'ai pas d'exemple direct sous la main , le mieux c'est que tu poste ton code afin de pouvoir t'aider.
Re: SendNetworkData() fichier de 10Ko donnée corrompu
Salut,
Protocole TCP bien sûr.
Mon code est trop lourd, c'est pour cela que j'ai utilisé l'exemple Atomic server pour reproduire le phénomène.
Test le sous linux. Lit mon premier post.
Protocole TCP bien sûr.
Mon code est trop lourd, c'est pour cela que j'ai utilisé l'exemple Atomic server pour reproduire le phénomène.
Test le sous linux. Lit mon premier post.
Re: SendNetworkData() fichier de 10Ko donnée corrompu
Je n'ai pas Linux.
D'une manière générale, si SendNetworkData() échoue (valeur retournée = -1 ou inférieure au nombre d'octets envoyés) :
-1 : probablement un problème réseau : essaie de renvoyer les données et affiche un message d'erreur si le problème persiste.
n < longueur envoyée : seule une partie des données est arrivée (tampon d'arrivée plein ?). Essaie d'envoyer des paquets plus petits et/ou envoie le complément des données (ce qui reste à envoyer en soustrayant les données bien arrivées).
En fait, SendNetworkData() devrait fonctionner dans une boucle qui gère les erreurs (comme d'ailleurs ReceiveNetworkData())
D'une manière générale, si SendNetworkData() échoue (valeur retournée = -1 ou inférieure au nombre d'octets envoyés) :
-1 : probablement un problème réseau : essaie de renvoyer les données et affiche un message d'erreur si le problème persiste.
n < longueur envoyée : seule une partie des données est arrivée (tampon d'arrivée plein ?). Essaie d'envoyer des paquets plus petits et/ou envoie le complément des données (ce qui reste à envoyer en soustrayant les données bien arrivées).
En fait, SendNetworkData() devrait fonctionner dans une boucle qui gère les erreurs (comme d'ailleurs ReceiveNetworkData())
Re: SendNetworkData() fichier de 10Ko donnée corrompu
Bonsoir,
Je viens de modifier mon programme pour envoyer des paquets de 5000 Octets.
J'ai vérifier sous windows les données sont bien transmises , le browser affiche les données correctement.
Je lance le serveur sous linux idem ; Je me rends compte que les deux premiers paquet de 5000 Octets sont transmis normalement. C'est le troisiéme paquet qui plante à 2300 Octets au lieu des 5000 la suite des paquets retour -1.
J'ai vérifier sur des fichiers javascript et css de grosse taille; idem plantage sur le troisiéme paquet et toujours à 2300 Octets.
Si je me connectes en local avec un browser c'est vers les 140Ko que le probléme survient
Bon cela me dépasse !!!!
Réinstaller Purebasic
Je vais monter une machine virtuelle "ubuntu server" pour vérifier si cela ne viens pas de mon serveur
Si vous avez d'autres je suis preneurs
Je viens de modifier mon programme pour envoyer des paquets de 5000 Octets.
J'ai vérifier sous windows les données sont bien transmises , le browser affiche les données correctement.
Je lance le serveur sous linux idem ; Je me rends compte que les deux premiers paquet de 5000 Octets sont transmis normalement. C'est le troisiéme paquet qui plante à 2300 Octets au lieu des 5000 la suite des paquets retour -1.
J'ai vérifier sur des fichiers javascript et css de grosse taille; idem plantage sur le troisiéme paquet et toujours à 2300 Octets.
Si je me connectes en local avec un browser c'est vers les 140Ko que le probléme survient
Bon cela me dépasse !!!!
Réinstaller Purebasic
Je vais monter une machine virtuelle "ubuntu server" pour vérifier si cela ne viens pas de mon serveur
Si vous avez d'autres je suis preneurs
Re: SendNetworkData() fichier de 10Ko donnée corrompu
Ton pare-feu Linux est peut être trop restrictif ?
Re: SendNetworkData() fichier de 10Ko donnée corrompu
Je n'ai pas de restriction en local.
De plus j'ai plusieurs serveurs qui tourne web,multimédia,samba,mail.
Je vais vérifier la version que j'ai installé en 32 ou 64 bits d'ubuntu.
En tous cas j'ai installé une version 32 bits de purebasic.
Peut êtres un problème à ce niveau
De plus j'ai plusieurs serveurs qui tourne web,multimédia,samba,mail.
Je vais vérifier la version que j'ai installé en 32 ou 64 bits d'ubuntu.
En tous cas j'ai installé une version 32 bits de purebasic.
Peut êtres un problème à ce niveau
Re: SendNetworkData() fichier de 10Ko donnée corrompu
Aucune idée...
As tu essayé de créer un code minimal (hormis l'exemple) pour testé la communication avant de te lancer dans un truc plus gros ?
As tu essayé de créer un code minimal (hormis l'exemple) pour testé la communication avant de te lancer dans un truc plus gros ?
Re: SendNetworkData() fichier de 10Ko donnée corrompu
pour purebasic x64 ou x86 perso j'ai un système en x64, mais j'ai installer les 2 versions car quand tu compile un exe en x64, ce dernier ne peut s'exécuter sous x86.
Donc je programme tout sous x64 et je compile pour les 2 maintenant et cela fonctionne tres bien.
Mais bon fait le test quand même ont ne sais jamais.
@++
Donc je programme tout sous x64 et je compile pour les 2 maintenant et cela fonctionne tres bien.
Mais bon fait le test quand même ont ne sais jamais.
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz