Client/Serveur Prb de Receive()
Matrix++
Messages postés
49
Statut
Membre
-
denligne Messages postés 213 Statut Membre -
denligne Messages postés 213 Statut Membre -
salut mes amis voila la code qui me cause vraiment problème:
je travaille avec MFC la classe CAsynSocket
int taille;
char buff[256];
int file = open("copie.txt",
_O_WRONLY|_O_TEXT | _O_CREAT) ;//ouverture en ecriture en mode
//texte
if(file == -1){MessageBox("Erreur d'ouverture de fichier texte");}
if(a==false) {taille=atoi(buff); a=true;}
sock2.Receive(buff,strlen(buff));
MessageBox(buff);
while(taille>0)
{
sock2.Receive(buff,256,0) ; //reception des donnees
write(file,buff,strlen(buff)) ; //ecriture du buffer
taille = taille - 256 ;
memset(buff,0,256) ;
}
close(file) ;// fermeture du fichier
dans ce code là le serveur essaye de recevoir un fichier envoyé par le client !!!!!!MAIS mon problème la focntion receive !! elle ne recoie pas les données comme il faut !!!! je sais pas koi faire alors s'il y a des novices parmi vous qu'ils m'aide car je dois rendre le travail dans le plus proche possible !!!!
Cordialement
@+
je travaille avec MFC la classe CAsynSocket
int taille;
char buff[256];
int file = open("copie.txt",
_O_WRONLY|_O_TEXT | _O_CREAT) ;//ouverture en ecriture en mode
//texte
if(file == -1){MessageBox("Erreur d'ouverture de fichier texte");}
if(a==false) {taille=atoi(buff); a=true;}
sock2.Receive(buff,strlen(buff));
MessageBox(buff);
while(taille>0)
{
sock2.Receive(buff,256,0) ; //reception des donnees
write(file,buff,strlen(buff)) ; //ecriture du buffer
taille = taille - 256 ;
memset(buff,0,256) ;
}
close(file) ;// fermeture du fichier
dans ce code là le serveur essaye de recevoir un fichier envoyé par le client !!!!!!MAIS mon problème la focntion receive !! elle ne recoie pas les données comme il faut !!!! je sais pas koi faire alors s'il y a des novices parmi vous qu'ils m'aide car je dois rendre le travail dans le plus proche possible !!!!
Cordialement
@+
A voir également:
- Client/Serveur Prb de Receive()
- Cybera client - Télécharger - Divers Réseau & Wi-Fi
- Changer serveur dns - Guide
- Filezilla client - Télécharger - Téléchargement & Transfert
- Formate pour taxer client 500€ - Forum PDF
- Sink to receive asynchronous callbacks for wmi client application - Forum Windows Vista
1 réponse
Soir,
Bon je sais plus bien parceque ca fait un moment que j'y ai pas touché (DSL, je fais plus dans Nux maintenant...bref!).
J'ai eu un problème du genre parceque le fichier est ouvert en texte, alors qu'il faut l'ouvrir en binaire. Effectivement certains caractères sont pas lus (merci Windows qui sait pas lire tous les caractères au dessus de 128)!
J'ai utilisé un truc de ce genre:
###########################
try
{
FileOutputStream output = new FileOutputStream(fichier) ;
char chars[]=texte.toCharArray();
for ( int a=0; a<texte.length() ; a++ )
{
output.write( (int) chars[a] ); // force l'écriture caractère par caractère pour garder la valeur décimale réelle
}
//flush envoie dans le fichier, ne pas oublier cette methode pour le BufferedWriter
output.flush();
// fermine et passe à vrai le résultat
output.close();
value=true;
}
catch(Exception e)
{
value=false;
}
###########################
(j'ai sorti le truc d'un prog que j'avais écris, tu le remettrasdans son contexte!)
Dans le sens de lecture c'est pareil, et j'avais galéré aussi un moment...
En espérant pas être trop à coté de la plaque.
Bon je sais plus bien parceque ca fait un moment que j'y ai pas touché (DSL, je fais plus dans Nux maintenant...bref!).
J'ai eu un problème du genre parceque le fichier est ouvert en texte, alors qu'il faut l'ouvrir en binaire. Effectivement certains caractères sont pas lus (merci Windows qui sait pas lire tous les caractères au dessus de 128)!
J'ai utilisé un truc de ce genre:
###########################
try
{
FileOutputStream output = new FileOutputStream(fichier) ;
char chars[]=texte.toCharArray();
for ( int a=0; a<texte.length() ; a++ )
{
output.write( (int) chars[a] ); // force l'écriture caractère par caractère pour garder la valeur décimale réelle
}
//flush envoie dans le fichier, ne pas oublier cette methode pour le BufferedWriter
output.flush();
// fermine et passe à vrai le résultat
output.close();
value=true;
}
catch(Exception e)
{
value=false;
}
###########################
(j'ai sorti le truc d'un prog que j'avais écris, tu le remettrasdans son contexte!)
Dans le sens de lecture c'est pareil, et j'avais galéré aussi un moment...
En espérant pas être trop à coté de la plaque.