Ah cool merci!
J'en profite d'ailleurs pour soulever un autre point, au debut j'ai essaye de construire mon write() comme ca :
std::string id("USER bot bot bot bot\r\n");
n = write(ircsock, id, strlen(id));
Ce qui posait un probleme de type.
Apres quelques recherches, j'ai fini par faire comme ca :
sprintf (buffer, "USER %s\r\n", user);
n = send (ircsock, buffer, strlen (buffer), 0);
//n = write(ircsock, buffer, strlen(buffer)); //Identification du bot
if (n < 0)
error("ERROR writing to socket USER");
Du coup j'ai remplace par write() et read() par send() et recv(), quelle est la reelle difference entre les deux?
J'ai aussi ajoute le pong :
while(1)
{
bzero(buffer,2048);
n = recv(ircsock, buffer, BUFSIZ-1, 0);
if (n < 0)
error("ERROR reading from socket");
//printf("%s\n",buffer);
if (strstr(buffer, "PING :"))
{
rcvmsg = strstr(buffer, "PING :") + strlen("PING :");
snprintf(msg, 256, "PONG :%s\n", rcvmsg);
send(ircsock, msg, strlen(msg), 0);
}
}
EDIT DE LA FIN: ayant ecris ce message en meme temps que je programmais, j'ai fini par trouver mon probleme :
L'utilisation du port SSL. En changeant de port la communication a fini par passer!
Mais ce sera un probleme pour plus tard! (je pense que je trouverais bien, ca doit juste etre un message qu'envoie le client pour confirmer qu'il accepte le certif)
Bon, l'essentiel c'est que ca marche enfin et que j'ai fini par comprendre...
(Comme souvent, probleme assez stupide en fait, desole si j'encombre le forum de post inutiles...)
Mais pour ma defense, c'est en forgeant que l'on devient forgeron.
En tous cas merci!