Bonsoir,

J'ai cod� un bot irc brouillon, mais j'ai quelques erreurs une dans le code et une autre qui n'est pas vraiment une erreur. La premi�re est que les informations renvoy�es par le serveur me sont affich� bizarrement, j'entends par l� qu'il ne sont pas affich� comme leur contenu. Par exemple le serveur m'envoie une phrase, je re�ois des caract�re bizarre et je distingue quelque mots de la phrase (�a me fait �a depuis que je suis pass� sous VS 2005). J'ai donc essay� un autre IDE tel que Dev-cpp, seulement il me retourne une erreur qui se trouve dans le winsock2.h .. (:
Voila pour ce qui est de l'affichage, ce qui est minime.. Mon autre probl�me est que lorsque je re�ois une information venant du serveur je v�rifie son contenu, par exemple je v�rifie si le message re�u est "PING" et j'envoie "PONG" au serveur pour qu'il sache que je suis toujours connect� et qu'il ne me d�connecte pas. jusque l� tout va bien, maintenant j'essaie de d�tecter un mot dans une phrase et faire en sorte que si celui ci y est, d'envoyer un message sur un salon pr�cis, seulement c'est l� que �a coince..

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
#include <stdio.h>
#include <string.h>
#include <string>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib") 
 
int main()
{
	WSADATA WSAData;
	WSAStartup(MAKEWORD(2,0), &WSAData);
	SOCKET sock;
	SOCKADDR_IN sin;
 
	char *buffer = new char[255],
		nick[] = "NICK squared\r\n", 
		user[] = "USER socketz \"x.com\" \"irc.voila.fr\" :E equal MC squared\r\n",
		pong[] = "PONG :irc.voila.fr\r\n",
		join[] = "JOIN #help-scripting\r\n",
		version[] = "PRIVMSG #help-scripting :testing\r\n";
 
	sock = socket(AF_INET, SOCK_STREAM, 0);
	sin.sin_addr.s_addr			= inet_addr("195.101.94.137");
	sin.sin_family				= AF_INET;
	sin.sin_port				= htons(6667);
 
	connect(sock, (SOCKADDR *)&sin, sizeof(sin));
 
	send(sock,user,strlen(user),0);
	send(sock,nick,strlen(nick),0);
	send(sock,join,strlen(join),0);
 
	while (1) 
	{
		memset(buffer,0,sizeof(buffer));
		recv(sock, buffer, sizeof(buffer), 0);
		if (buffer) {
			printf("%s\n",buffer);
			if (strstr(buffer,"PING")) { send(sock,pong,strlen(pong),0); }
			/* c'est à cette ligne que mon problème se situe même si aucune erreur m'est retournée*/
			if (strstr(buffer,"testz")) { send(sock,version,strlen(version),0); }
		}
		else {
			closesocket(sock);
			WSACleanup();
			system("PAUSE");
		}
	} 
	return 0;
}
Comme je le dis mon code est un brouillon et sale =/
Je n'utilise pas encore les threads donc j'ai remplac� par une while infinie. Aucune erreur m'est retourn�e � la compilation et aucune pendant son utilisation alors que je ne re�ois pas le message sur le salon.. Et si une erreur m'est renvoy� par le serveur ce qui se pourrait, ben je ne la vois pas d� � cette affichage pourrit =]

pour mieux comprendre ce dont je parle, pour ce qui est de l'affichage: http://www.picdo.net/Fichiers/fb841f...d9b/erreur.PNG

[edit]
mon probl�me d'affichage est r�solu, je vais maintenant pouvoir regarder ce qu'il ne va pas pour mon message de test
[/edit]