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

  FORUM HardWare.fr
  Programmation
  C++

  programmation socket avec QT

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programmation socket avec QT

n°717053
bibifox
Posté le 06-05-2004 à 10:29:58  profilanswer
 

Bonjour à tous
 
J'essai de coder un client sous Linux avec la bibliotheque QT de Trolltech. J'utilise la classe QSocketDevice qui permet de créer une socket avec les API
 
J'arrive à me connecter au serveur et a lui envoyé un message mais dès que je sors de ma méthode qui me permet d'envoyer des données sur la socket je reçois un message SEGMENTATION FAULT.
 
Merci pour celui ou celle qui pourra m'aider
 
Voici mon code pour ma méthode d'envoi de données sur la socket
void Client::Envoyer_Trame_Credit(){
        // write to the server
        int nb_octects_ecrit ;
        int longueur_trame = strlen(trame_cryptee) ; //on recupere la taille de la chaine
        nb_octects_ecrit = socket->writeBlock(trame_cryptee ,longueur_trame) ;
        cout<<"j'ai ecrit "<<nb_octects_ecrit<<"octects sur la socket avec le message "<<trame_cryptee<<endl ;
        memset(trame_a_cryptee ,'\0' , MAXDATA);
        memset(type_trame ,'\0' , MAXDATA);
        memset(trame_cryptee ,'\0' , MAXDATA);
        socket->close() ;
        delete socket ;
}

mood
Publicité
Posté le 06-05-2004 à 10:29:58  profilanswer
 

n°717060
Kristoph
Posté le 06-05-2004 à 10:34:04  profilanswer
 

Code :
  1. strlen(trame_cryptee) ; //on recupere la taille de la chaine


 
Que fait un strlen dans un programme en C++ ?
Que fait un strlen dans un programme en C pour manipuler un objet qui n'est pas une chaine de caractères a 0 terminal ? ( je suppose que trame_cryptee n'est pas codée en ASCII non ? )

n°717066
bibifox
Posté le 06-05-2004 à 10:42:22  profilanswer
 

non trame_cryptee n'est poas codée en ASCII et trame_cryptee est bien une chaine ne t'inkète pa
Mai de toute facon se n'est pa le probleme mon probleme c'est que dès que je sors de cette methode j'ai un segmantation fault pourquoi ?
 
merci d'avance

n°717070
Joel F
Real men use unique_ptr
Posté le 06-05-2004 à 10:44:48  profilanswer
 

pas de char* en C++ bourdel, std::string ou vector<char> :o

n°717098
Kristoph
Posté le 06-05-2004 à 10:56:44  profilanswer
 

Si tu es sous Linux, essaye d'utiliser valgrind pour te trouver ton problème.
 
Autre chose sinon :

Code :
  1. delete socket;


 
Est tu certains de n'avoir pas détruit 2 fois socket ? Remplace ce code par ça pour voir ce que ça donne :
 

Code :
  1. delete socket;
  2. socket = 0;



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

  programmation socket avec QT

 

Sujets relatifs
[socket] un socket.receive() non bloquant ....Programmation en Vax
Programmation OS & API Windowsalgorithme et programmation en langage c
[Divers] Fonts/polices pour la programmationProbléme programmation PHP pour enregistremetn dasn deux tables MySQL
Programmation direct X / C++besoin d'aide pour la fonction socket probleme avec free
programmation de l'exécution d'un fichier batch avec la schtasksSite français de programmation avec la librairie Qt.
Plus de sujets relatifs à : programmation socket avec QT


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)