Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2593 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  C++ Builder Socket Bloquant !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C++ Builder Socket Bloquant !

n°891858
thePhenom
Posté le 06-11-2004 à 15:13:07  profilanswer
 

Bonjour a tous,
Voila je vous explique mon probleme je suis entrain d'ecrire un programme similare a DirectConnect (qui est un programme de transfere de fichier) sous C++ Builder j'aimerais utilisé des sockets bloquants car le socket serveur genere des threads automatiquement pour tout les clients qui se connectent(ce qui me permettra de lancer plusieurs transfert) mais voila j'ai un probleme avec le gestionnaire d'erreur (OnError) qui apparement refuse de fonctionner avec les sockets "bloquant" (vu que le socket genere une execption) alors qu'il fonctionne nickel en "non bloquant" ...Est ce que quelqu'un saurait me dire comment ca focntionne car je trouve pas vraiment de doc la dessus ! Voici une partie de mon code pour illustré le probleme:
 

Code :
  1. #include "DownloadFile.h"
  2. DownloadFile::DownloadFile(TForm * form,AnsiString ip,int port,AnsiString name,int ligne,int numeroRep)
  3. {
  4. sc=new TClientSocket(form);
  5. sc->Port=port;
  6. sc->Address=ip;
  7. sc->ClientType=ctBlocking; //ctNonBlocking;
  8. name_File=name;
  9. sc->OnConnect=scConnect;
  10. this->ligne=ligne;
  11. this->numeroRep=numeroRep;
  12. sc->OnError=gestionnaireErreur;
  13. sc->Open();
  14. }
  15. DownloadFile::~DownloadFile()
  16. { }
  17. void __fastcall DownloadFile::scConnect(TObject *Sender,
  18. TCustomWinSocket *Socket)
  19. {
  20. /*Thread=new TDownloadThread(true,sc,ligne,numeroRep,name_File);
  21. Thread->Priority=tpLowest;
  22. Thread->Resume();*/
  23. }
  24. void __fastcall DownloadFile::gestionnaireErreur(TObject *Sender, TCustomWinSocket *Socket,
  25. TErrorEvent ErrorEvent, int &ErrorCode)
  26. {
  27. AnsiString mes;
  28. switch (ErrorEvent)
  29. {
  30. case eeSend: mes = "Une erreur est survenue lors d'une tentative d'écriture sur la connexion socket";
  31. break;
  32. case eeReceive: mes = "Une erreur est survenue lors d'une tentative de lecture sur la connexion socket";
  33. break;
  34. case eeConnect : mes ="Le Serveur n'existe pas ou bien il est inactif"; break;
  35. case eeDisconnect: mes="Une erreur est survenue lors d'une tentative de fermeture de connexion";break;
  36. case eeAccept: mes="Un problème s'est produit lors d'une tentative d'acceptation d'une demande de connexion cliente"; break;
  37. case eeGeneral: mes="Le socket a reçu un message d'erreur non répertorié";
  38. }
  39. Application->MessageBoxA(mes.c_str(),"Problème de socket",MB_OK);
  40. ErrorCode=0;
  41. }

mood
Publicité
Posté le 06-11-2004 à 15:13:07  profilanswer
 

n°893607
thePhenom
Posté le 08-11-2004 à 19:37:38  profilanswer
 

il y a vraiment personne qui a une idée ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  C++ Builder Socket Bloquant !

 

Sujets relatifs
Utilisation des composants Indy 9 sous C++ BuilderJava erreur de socket (win) 10106
Reseau Socket - Problème de bind() dans un client/serveur localPassage 1.3.1 à 1.4.2 : question socket
client/serveur par socketSocket RAW (C aussi !)
C++ builder formatage hexarreter un select bloquant depuis un autre thread
c++ builder 6 pro et les fluxcreer un graphe en builder c++
Plus de sujets relatifs à : C++ Builder Socket Bloquant !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR