programmation socket avec QT - C++ - Programmation
Marsh Posté le 06-05-2004 à 10:34:04
Code :
|
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 ? )
Marsh Posté le 06-05-2004 à 10:42:22
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
Marsh Posté le 06-05-2004 à 10:56:44
Si tu es sous Linux, essaye d'utiliser valgrind pour te trouver ton problème.
Autre chose sinon :
Code :
|
Est tu certains de n'avoir pas détruit 2 fois socket ? Remplace ce code par ça pour voir ce que ça donne :
Code :
|
Marsh Posté le 06-05-2004 à 10:29:58
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 ;
}