Probleme de transfert avec une application mfc

Probleme de transfert avec une application mfc - C++ - Programmation

Marsh Posté le 19-04-2006 à 17:12:37    

Bonjour,
 
Je développe acuellement une application MFC (exe) pour me permettre d'envoyer un fichier d'un PC à un autre en utilisant une connexion ethernet.
Ainsi, j'ai deux codes sources (le serveur et le client)
 
Application serveur :
void CProgressDlg::OnButton11()  
{  
        #define PORT 200 /// Select any free port you wish  
 
 
        AfxSocketInit(NULL);  
        CSocket sockSrvr;  
        sockSrvr.Create(PORT); // Creates our server socket  
        sockSrvr.Listen(); // Start listening for the client at PORT  
        CSocket sockRecv;  
        sockSrvr.Accept(sockRecv); // Use another CSocket to accept the  
connection  
 
 
        CFile myFile;  
        myFile.Open("C:\\Bulles de savon.bmp",CFile::modeRead |  
CFile::typeBinary);  
 
 
        int myFileLength = myFile.GetLength(); // Going to send the correct  
File Size  
 
 
        sockRecv.Send(&myFileLength, 100); // 4 bytes long  
 
 
        byte* data = new byte[myFileLength];  
 
 
        myFile.Read(data, myFileLength);  
 
 
        sockRecv.Send(data, myFileLength); //Send the whole thing now  
 
 
        myFile.Close();  
        delete data;  
 
 
        sockRecv.Close();  
 
 
 
}  
 
 
Application client :
void CClientDlg::OnButton1()  
{  
        #define PORT 200 /// Select any free port you wish  
 
        AfxSocketInit(NULL);  
        CSocket sockClient;  
        sockClient.Create();  
        sockClient.Connect("127.0.0.1", PORT); // "127.0.0.1" is the  
IP to your server, same port  
 
 
        int dataLength;  
        sockClient.Receive(&dataLength, 100); //Now we get the File Size first  
 
 
        byte* data = new byte[dataLength];  
        sockClient.Receive(data, dataLength); //Get the whole thing  
 
 
        CFile destFile("C:\\ Bulles de savon", CFile::modeCreate |  
CFile::modeWrite | CFile::typeBinary);  
 
 
        destFile.Write(data, dataLength); // Write it  
 
 
        destFile.Close();  
 
 
        delete data;  
        sockClient.Close();  
 
 
 
}  
 
Une fois tous ceci compilé j'insere mon application client sur un PC et l'application serveur dans un autre.
J'ouvre ensuite l'application serveur puis j'appuis sur le bouton pour débuter le transfert.
J'ouvre ensuite l'application client afin de recevoir ce fichier.
 
Mais j'ai quelques probleme tous d'abord :
Mon application serveur ne se ferme plus.
Je recoit bien un fichier sur mon ordinateur client mais celui est composé que de "0" (si on l'ouvre avec WinHex) et de plus sa taille est de 3.07 Mo alors que l'orignale ne fait que 65Kb.
 
Savez vous d'ou provient l'ensemble de ces problemes ?
 
Merci
 

Reply

Marsh Posté le 19-04-2006 à 17:12:37   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed