[QT] erreur reseau inconnue.

Résolu
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -  
 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

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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.
0
IPUN8
 
ou tu la trouver se code
0
loupius
 
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 ;-)
-1