[QT] erreur reseau inconnue. [Résolu/Fermé]

Signaler
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
-
 IPUN8 -
Bonjour,
voilà, j'ai mi le code suivant :
    QTcpSocket s;
    char buf[256];buf[0]=0;
    s.connectToHost(ui->serveur->text(),25);
    qDebug()<<s.waitForConnected(1000);
    qDebug()<<s.read(buf,256);qDebug()<<buf;qDebug()<<s.error();
    qDebug()<<s.write("EHLO BOUFFON\r\n");

Et il me retourne :
true 
0 
 
QAbstractSocket::UnknownSocketError 
14 

C'est à dire qu'il a bien réussi à se connecter, mais qu'il reçoit 0 octet de la part du serveur, et qu'il rencontre une erreur inconnu.
Ce que je ne comprends pas, car j'utilise le même protocole qu'un vieux programme en C++ qui lui fonctionnait très bien.
(pour info :)
    int tt=::connect(dist,(SOCKADDR *)&sindist, sizeof(sindist));
    recv(dist,buf,210,0);printf(buf);
    sbuf="EHLO Beber\r\n";
    send(dist,sbuf,strlen(sbuf),0);printf("send %s\n",sbuf);

3 réponses

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 263
Salut.
j'ai trouvé la solution, je ne remercie pas trop la doc QT qui n'est pas clair sur ce sujet.
En fait, avant chaque "read" il faut faire :
s.waitReadReady();// ou une fonction du genre, je n'ai plus en tête.
La fonction ne semble pas travaillé comme recv() standard, surment une histoire de socket bloquant ou non. C'est un peu casse pied.
Pour le port 25, je me suis dit que pour envoyer des courriels, passer par un serveur SMTP c'était pas mal ;) mais merci tout de même de la précision.
ou tu la trouver se code
Je ne sais pas si je vais t'apporter la bonne solution à ton problème.
Toutefois, je n'ai que deux remarques à émettre vu le peu d'informations:
- le port 25 est le port SMTP,
- en retournant 0, la fonction 'read' dit qu'il y a 0 octets à lire mais elle ne signale pas d'erreur (en cas d'erreur elle renvoie -1) donc la lecture de l'erreur ne signifie rien.
C'est tout pour le moment ;-)