Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : erreur completement inexplicable ! [ Archives / Au secours ] (anonyme_man_in_this_world)

vendredi 6 janvier 2006 à 16:01:35 | erreur completement inexplicable !

anonyme_man_in_this_world

salut  !

lorsque j' execute les deux programmes sur mon pc, tout marche bien ,meme si je

valide l'ip internet . Mais lorsque je les ai testé avec mes amis ,le fichier n'est pas recu  !

en tout cas ,voila les codes  :

/*************************************/
// client :

#include <winsock.h>
#include <stdio.h>
#pragma comment(lib, "wsock32.lib")

int main()
{
char buffer[8000] ;
char nomfichier[30] ;

printf("fichier : ") ;
scanf("%s",nomfichier) ; //fichier.txt
FILE* file = fopen(nomfichier, //ouverture en lecture seule en mode txt
"rb") ;
if(file == NULL)
{
printf("erreur lors l'ouverture du fichier\n") ;
exit(-1) ;
}

WSADATA WSAData;
WSAStartup(MAKEWORD(1,0), &WSAData);
SOCKET sock;
printf("Ip : ") ;
scanf("%s",buffer) ;
SOCKADDR_IN sin;
sock = socket(AF_INET, SOCK_STREAM, 0);

// les proprietes du socket du server
sin.sin_addr.s_addr = inet_addr(buffer);
sin.sin_family = AF_INET;
sin.sin_port = htons(4444);
if(connect(sock, (SOCKADDR *)&sin, sizeof(sin)) == INVALID_SOCKET)
{
printf("la connection a echoué\n") ;
getchar() ;
return 1 ;
}
printf("connection etablie\n") ;
send(sock,nomfichier,30,0) ;
recv(sock,nomfichier,30,0) ;
int SizeReaded = 1 ;
long SizeSended = 1 ;
printf("transfert des données en cours...\n") ;

while(SizeReaded>0 && SizeSended>0)
{
SizeReaded = fread(buffer,1,8000,file) ;
SizeSended = send(sock,buffer,SizeReaded,0) ;
}

fclose(file) ; // fermeture du fichier
closesocket(sock) ;
WSACleanup() ;
printf("fichier bien envoye\n") ;
printf("appuyer sur une touche pour sortir ...") ;
getchar() ;
getchar() ;
return 1;
}
/***********************************/
// server

#include <stdio.h> // printf
#include <winsock.h>
#pragma comment(lib, "wsock32.lib")

int main()
{
char buffer[8000] ;
char nomfichier[30] ;
memset(nomfichier,0,30) ;
printf("veuillez attendre que le client se connecte ...\n") ;

WSADATA WSAData;
WSAStartup(MAKEWORD(1,0), &WSAData);

SOCKET sock;
SOCKET csock = INVALID_SOCKET;
SOCKADDR_IN sin;
sock = socket(AF_INET, SOCK_STREAM, 0);

sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(4444);

bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 1);
int a = sizeof(sin) ;
while(csock == INVALID_SOCKET)
{
csock = accept(sock,(SOCKADDR*)&sin,&a) ;
}
printf("connection etablie\n") ;
recv(csock,nomfichier,30,0) ;
send(csock,nomfichier,30,0) ;
FILE*file = fopen(nomfichier,"wb") ;
if(file == NULL)
{
printf("erreur lors l'ouverture du fichier\n") ;
exit(-1) ;
}
long SizeRecv = 1 ;
int SizeWrited = 1 ;
printf("reception des donnees ...\n") ;

while(SizeRecv>0 && SizeWrited>0)
{
SizeRecv = recv(csock,buffer,8000,0) ; //reception des donnees
SizeWrited = fwrite(buffer,1,SizeRecv,file); //ecriture du buffer
}
fclose(file) ;// fermeture du fichier
printf("fermeture du fichier \n") ;
closesocket(sock) ;
WSACleanup() ;
printf("transfert terminé fichier bien recu \n") ;
printf("appuyer sur une touche pour sortir ...") ;
getchar() ;
return 1;
}
/****************************/

merçi d'avance


vendredi 6 janvier 2006 à 16:59:08 | Re : erreur completement inexplicable !

luhtor

J'en sais rien, mais y a t-il une limite de taille pour les paquets IP ? Il me semble que les tiens sont plutot gros.



vendredi 6 janvier 2006 à 17:37:37 | Re : erreur completement inexplicable !

CoyoteVsBeepBeep

Membre Club
hello,
effectivement, j'ai remanqué un limitation vers les 1500 octets par trame.
au dela ca passe pas. (pour info, 1024 ca passe.)

vendredi 6 janvier 2006 à 21:04:04 | Re : erreur completement inexplicable !

anonyme_man_in_this_world

merçi pour votre aide les amis.cepandant ,j'arrive pas trouver

quelqun avec lequel je peux tester le programme.ça sera vraiment

simpa si quelqun le teste avec moi(vous pouvez m'envoyer un

message privé).

superbe merçi d'avance .


vendredi 6 janvier 2006 à 22:13:26 | Re : erreur completement inexplicable !

anonyme_man_in_this_world

je l'ai retesté avec un de mes amis ,mais ça n'a pas marché (j'ai pas

confiance en lui) .je suis entrain de mourir !aidez moi ! ça sera

vraiment simpa si quelqun le teste soi avec moi ou avec une autre

personne.

merçi d'avance




Cette discussion est classé dans : fichier, printf, sin, sock, nomfichier


Répondre à ce message

Sujets en rapport avec ce message

transfert de fichiers [ par anonyme_man_in_this_world ] salut  !recemment ,j'ai testé le programme que j'ai deposé sur le site avec deux de mes amis et ça n'a pas l'air de fonctionner ,pourtant lorsque je t prb a la compilation vous vc++ [ par shadow1779 ] Bonjour,j'ai tenté de faire un programme en C utilisant les sockets, la personne qui lance son programme choisi elle meme l'ip et le port a se connect smtp en socket [ par XKaliBur ] J'ai essayer de faire le plus simple possible mais ça marche pas... est-ce que quelqu'un aurais une idée... Parce que quand je le fait en telnet ça ma [C] Probleme Socket [ par firemax ] Voila le code : En gros je sais pas qu'elle est le probleme et je n'est aucun message d'erreur :D [code]#include "lib.h" int main() {     int sock pb socket [ par surfeurnet ] voici mon programme qui a pour l'instant pour unique but de se connecter à un serveur :# include # include # pragma comment (lib,"w32_32.lib")char ip, erreur 10038 [ par made_in_france ] Hello ! j'ai un probleme avec la fonction bind de mon programme. En effet cette fonction me renvois l'erreur 10038 « attempted ». Est ce que quelqu'un transfert de fichier sous MFC [ par 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 [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 Fiabiliser transfert par socket [ par masseur ] Salut. Je vais vous expliquer mon petit problème. Je crée un client et un serveur. Des que le serveur recoit une demande il envoie un fichier en ut


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.