begin process at 2012 05 30 10:21:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

transfert de fichier sous MFC


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

transfert de fichier sous MFC

mardi 13 avril 2004 à 16:29:18 | transfert de fichier sous MFC

seito


[size=5] seito [/size]

bonjours,
j'aimerais déveloper une application de transfert de fichier sous MFC avec Visual C++ 6.
le code que j'ai conçus marche parfaitement quand je l'execute sur la même machine. mais il bloque quand j'essai de l'executer sur deux machines distinct et ce que quelqu'un peut me dir ce qui cloche.
je met à votre disposition mon code:

pour l'envoi:




HWND hDlg= GetSafeHwnd();
char fileName[MAXLEN_FILEINFO];
char strFilterString[32];
char *res=new char[100];
memset(fileName,0,sizeof(fileName));
memset(StrStatus,0,sizeof(StrStatus));
memset(strFilterString,0,sizeof(strFilterString));
sprintf(strFilterString," ALL FILES");
sprintf(&strFilterString[strlen(strFilterString)+1],"*.*");
BOOL th=BrowseLicenceFile(hDlg,fileName, ".\\",strFilterString) ;
chemin(fileName);//c'est une fonction qui me permet d'ajouter un autre \ dans le chemin du fichier à ouvrir
nom_fichier(fileName,res);//cet fonction me permet d'isoler le nom de fichier
f=fopen(fileName,"rb");
fseek(f,0,SEEK_END);
int taille=ftell(f);
fseek(f,0,SEEK_SET);
if(th=TRUE)
{

int nreception=0;
int nlecture=0;
char* buff=new char[1025];
itoa(taille,buff,10);
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
char *buffer = new char[1025];
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr("192.168.0.105");
sin.sin_family = AF_INET;
sin.sin_port = htons(8080);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
send(sock,buff,100,0);
send(sock,res,100,0);
while(!feof(f))
{
nlecture=fread(buff,1024,1,f);
send(sock,buff,1024,0);
}
MessageBox("reussi","r",0);
nreception=recv(sock,buffer,50,0);
buffer[nreception]='\0';
MessageBox("reception reussite","r",0);
}
else
{
MessageBox("desole"," ",16);
}



pour la reception coté serveur j'ai fait comme suit:



int j=1;

FILE* fh;
int taille=0;
int taille_fichier=0;
int n=0;
SOCKET sock,client;
SOCKADDR_IN sin,csin;
char *buff=new char[1024];
sin.sin_addr.s_addr = inet_addr("192.168.0.105");
sin.sin_family = AF_INET;
sin.sin_port = htons(8080);
sock = socket(AF_INET,SOCK_STREAM,0);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock,0);
int sinsize = sizeof(csin);
if((client=accept(sock,(SOCKADDR *) &csin, &sinsize))!=INVALID_SOCKET)
{
taille=recv(client,buff,1024,0);
taille_fichier=atoi(buff);
recv(client,buff,1024,0);
fh=fopen(buff,"wb");
fseek(fh,0,SEEK_SET);
do
{
n=recv(client,buff,1024,0);
fwrite(buff,n,1,fh);
taille_fichier-=n;
}
while(taille_fichier>0);

send(client,"hello world\n\r",14,0);
MessageBox("envoi reussi","reussi",0);

}
else
{
j=0;
MessageBox("connection impossible","echec",0);
}
fclose(fh);
}


dans l'attente d'une réponse merci.
mardi 13 avril 2004 à 18:46:38 | Re : transfert de fichier sous MFC

greg883

Côté serveur:

sin.sin_family = AF_INET;
sin.sin_port = htons(8080);

ok !

mais sin.sin_addr.s_addr = inet_addr("192.168.0.105");

si tu passes par internet ça ne va pas car c'est une ip locale, de plus dans ce cas tu n'acceptes que l'ip "192.168.0.105"
et il faut écrire :
sin.sin_addr.s_addr=INADDR_ANY;

enfin je ne suis pas sur de ce que je dit !
mardi 13 avril 2004 à 18:50:02 | Re : transfert de fichier sous MFC

greg883

et pour le client il faut que tu précises la vraie ip internet du serveur !
mercredi 14 avril 2004 à 13:19:02 | Re : transfert de fichier sous MFC

seito


seito
désolé mais j'i essayé et ça marche pas ce qui me chagrine c'est que ça marche quand je les utilise sur la même machine mais une fois que je les essai sur deux machine distinct les fichiers textes ça passe mais les autres types bloque le programme et même les fichiers textes sont altéré.
merci pour la réponse.


Cette discussion est classée dans : fichier, char, sin, sock, buff


Répondre à ce message

Sujets en rapport avec ce message

SVP besoin d'aide [ par seito ] [size=5] seito [/size]j'ai déveloper une apploication pour transferer des fichiersla reception est parfaite pourtant à l'envoie ça me cause des tas de Requete HTTP POST MIME - Upload de fichier [ par SuperChouquette ] Bonjour, je suis débutant et j'ai créer une fonction pour uploader un fichier sur un serveur php apache via le protocole http et le standard mime.Le p Création d'un client IRC,reception ok, emission: pas bon [ par freekid ] Bonjour tout le monde,je bosse actuellement sur la création d'un client IRC.Pour l'instant il s'agit d'un simple mode console.Et donc quand le program Winsock : Le nom de la machine [ par wxccxw ] hello tout le monde, bon voila j'ai un petit probleme, j'essay de recuperer le nom de ma machine par Winsock (si vous connaisez un proceder plus simpl téléchargement d'un fichier via l'url [WINSOCK] [ par MorbhAck ] Bonsoir tout le monde!j'ai un problème, j'essai de télécharger un fichier .rar avec GETet quand je veux extraire le rar il m'indique que le fichier es [serveur]telecharger fichier [ par lombredudragon ] Avec les socket je debute et j'aimerais me faire un serveur en c ou c++ ou kan on se connect au port 23 par telnet on recoit automatiquement un fichie Problème copie de fichier.... [ par Clonk ] Bonjour,Je voudrais copier un fichier texte dans mon appli, j'ai fais la fonction suivante://Copie d'un fichier (création du backup)int copier(char * Problème pour creer un bot. HELP ME [ par oshin ] Hello,Bon enfaite j'aimerais creer un bot pour qu'il se connect sur irc, rejoingne un salon et puis ce sera tout pour le moment. voici mon code:#inclu utilisation basique de winsock [ par Spiffou ] bonjour à tousj'essaie d'apprendre winsock en vc++ mode console pour le moment, et j'ai qlq difficultés...en gros j'etabli bien une connection entre l


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales