BOT IRC : MARCHE SOUS WIN ET SOUS LINUX SANS CHANGEMENT

h4l9000 Messages postés 6 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 21 juin 2003 - 13 avril 2003 à 13:03
Alcantornet Messages postés 89 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 14 novembre 2007 - 23 mai 2006 à 11:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10654-bot-irc-marche-sous-win-et-sous-linux-sans-changement

Alcantornet Messages postés 89 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 14 novembre 2007
23 mai 2006 à 11:23
t'as fonction strleft ne sert presqu'à rien...

sprintf(buf_send,IRC_JOIN,buf2+1);
idem que sprintf(buf_send,IRC_JOIN,strleft(buf2,1));

mais il serait judicieux de faire une fonction strleft qui gère les erreur comme décallage trop grand.
Alcantornet Messages postés 89 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 14 novembre 2007
23 mai 2006 à 11:11
Bon code, juste que tu utilise beaucoup de malloc() mais presqu'aucun free()
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 avril 2006 à 20:47
En ce cas, faut-il l'enlever ?
gr0ar Messages postés 4 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 6 avril 2006
6 avril 2006 à 19:51
Aucun intérêt. Ce code a été posté en 2003, c'était juste une *expérience*, évidemment il n'est absolument pas fonctionnel et ne sert à rien. Juste voir comment coder quelque chose qui compile à la fois sous nux et win, c'est *pédagogique* (mais enfin vu comme il est mal codé, il n'a pas grand intérêt même de cep oint de vue là)
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007
6 avril 2006 à 00:19
bonsoir, loin de moi l'idée de faire de la pub, mais j'aimerais savoir quels sont les interets d'un tel code au niveau de l'architecture, de la conception, principe je ne sais pas, par rapport à cette classe http://www.cppfrance.com/codes/CLASSE-IRC-MULTHI-THREAD-MULTI-SERVER-AUTONOME-AVEC_36575.aspx

outre le fait que ce soit portable, au niveau experience utilisateur ou juste codage, qu'est ce qui est plus interessant. ne peut t on pas faire un mix pour eviter de recoder sans cesse l'irc tout en gardant une bonne simplicité d'utilisation, et pourquoi pas a portabilité
MIDIEBOLD Messages postés 5 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 7 août 2004
13 juil. 2005 à 14:58
bah tu compiles avec quoi ? c au niveau du linkage ke ca foire ? t as mis la lib winsock en link ?
MMm pour le zip jvais le faire ptet un jour :) mais le truc ke ya plusieurs .c (enfin ca change rien) mais bon la ct pour que soit plus simple ! enfin jai testé sous vc++ et devc++ il marche tres bien ainsi ke gcc sous nux :] <<< je pense que le principe c juste comme un simple user qui se connecte au serv donc pas besoin de link
DarkEbola Messages postés 6 Date d'inscription vendredi 27 juin 2003 Statut Membre Dernière intervention 11 novembre 2005
28 avril 2005 à 23:49
excellente source, je vais la potasser :)
je cherchais justement une source compatible Win/Linux pour pouvoir voir les sockets dans un exemple concret ...

merci a toi !
ptiscripter Messages postés 25 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 14 mars 2004
30 avril 2004 à 19:58
Salut, juste une petite question:
Pourquoi tu m'est ceci:
for(i=0;i<1000;i++); // c un temps d attente c tout :)

un: Sleep(5000); // pause de 5s :)

c'est mieu non ?
cs_Mephisto_fr Messages postés 1 Date d'inscription vendredi 23 janvier 2004 Statut Membre Dernière intervention 23 janvier 2004
23 janv. 2004 à 19:11
Tout d'abord je souhaite te remercier GrOar d'avoir mis ton source ici. Je m'en suis inspiré pour faire mon premier bot. J'ai fait plusieurs modif mais j'ai un petit probleme sur une de mes fonctions. Mon probleme est le suivant : je veux faire un bot à qui on donne une liste de fichier a telecharger sur un channel et qui s'occupe de lancer les download les uns apres les autres (j'utilise XDCC pour telecharger les fichiers). Lorsque je tape la commande pour telecharger un fichier sous mirc, je download se lance. Lorsque mon bot tape la commande pour telecharger le fichier, il ne se passe rien.
Est ce que quelqu'un pourait m'eclairer sur le protocole XDCC qu'il faut que je mette en place pour que le download se lance egalement lorsque c 'est mon bot qui fait la demande de telechargement ?
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
13 janv. 2004 à 12:35
Dans VC++ appuis sur les touches alt + F7, tu entrera alors dans les "Settings" de ton projet, click sur l'onglet "C/C++", tu auras un menu deroulant, le premier. Dans ce menu, séléctionne "Precompiled Headers". Ici, click sur "Not using precompiled headers". Puis clock sur OK et recompile. :)
rclsilver02 Messages postés 130 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 10 février 2012
6 janv. 2004 à 22:51
Bonjour. Je débute. Je voudrais faire un bot compatible Win/Linux, je suis tombé sur cette source. Je possède Visual Studio C++ 6.0. J'ai inseré le code dans un .c que j ai mis dans un Work Space dans Source File. J'ai ajouté la lib wsock32.lib comme l'a indiqué gr0ar. Mais quand je veux compiler, ça me met cette erreur : "c:\program files\microsoft visual studio\myprojects\bot irc test\main.c(461) : fatal error C1010: unexpected end of file while looking for precompiled header directive". J'ai essayé d'ajouter "#pragma comment(lib, "wsock32.lib")" apres l'include de winsock.h, comme disait melnofil, mais ça me fait pareil. D'où ça vient ? Que me conseillez-vous ? Hellllllllllllllp :)))
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
2 janv. 2004 à 07:50
ça utilise quoi comme socket un service ? :X
cs_Melnofil Messages postés 71 Date d'inscription dimanche 23 juin 2002 Statut Membre Dernière intervention 1 février 2008
24 nov. 2003 à 15:03
Djoobbstil : Plutôt que d'utiliser un sleep en fesant de la bidouille, il vaut mieux utiliser les sockets non bloquant, avec un délai d'attente de 0 (ainsi si le programme n'a rien recu il sort imédiatement).
Si tu n'arrive pas a faire un socket non-bloquant avec l'adresse que j'ai filé, c'est qu'une légère erreur c'est glissée dans la page web, il fait pas lui passer un timeout null (ca fait un socket bloquant !), mais un timeout initialisé a 0, 0. Pour plus d'infos, regarde à select() dans la msdn de windaube, c la que j'ai trouvé l'erreur.
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
9 nov. 2003 à 00:01
c'est bon j'ai trouvé,
il sufisait de rajouter un Sleep(1); a la fin de la while
" while(retval == 0) "
de la fonction irc_shell,
juste après le
" else
{
}"

ça donne:
Sleep(1);
}
#ifdef WIN32
closesocket(sock1); // facon win
#else
close(sock1); // facon nux
#endif

return retval;
}

(j'ai été assé precis j'éspère ;p)
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
7 nov. 2003 à 17:50
Qelqu'un saurait comment eviter de monopoliser tout le CPU ?
cs_Melnofil Messages postés 71 Date d'inscription dimanche 23 juin 2002 Statut Membre Dernière intervention 1 février 2008
5 nov. 2003 à 17:58
Pour tous ceux qui veulent débuter les sockets, dans mes fouilles j'ai trouvé les perles rares : ^_^
Le premier c pour apprendre super facilement a faire un client ou un serveur : http://c.developpez.com/WalrusSock/
Le deuxième à voir absolument, explique comment utiliser select() pour faire des stockets non-bloquants : http://www.progzone.free.fr/reseau/socket/sockasync.html
cs_Melnofil Messages postés 71 Date d'inscription dimanche 23 juin 2002 Statut Membre Dernière intervention 1 février 2008
5 nov. 2003 à 14:32
J'ai eu quelques petites erreurs sous VC++, les voici :
- Pour tout les problèmes de linkage sous windaube, sous l'include de winsock.h il manque la ligne suivante (qui sert a lier la library) : #pragma comment(lib, "wsock32.lib")
- malloc() non déclaré <== ajouter #include <malloc.h>
- atoi() non déclaré <== #include <stdlib.h>
- "Warning '<' : signed/unsigned mismatch" dans la fonction strleft() <== mettez i en unsigned int, la fonction marche toujours et le warning disparaît.
DuncanIdaho Messages postés 98 Date d'inscription mardi 1 janvier 2002 Statut Membre Dernière intervention 12 février 2008
11 sept. 2003 à 15:03
:S T pourrais mettre un zip avec le prog fait ? je debute avec le C++ :(
D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
1 sept. 2003 à 23:58
slt,
seul petite faute:

/* includes de windows */
#ifdef WIN32
#include <winsock.h>
typedef unsigned int u_int32_t; /* utilisé par linux mais non défini dans winsock.h */
/* les includes de linux */
#else
#include
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/types.h>
#define SOCKET_ERROR (-1) /* défini dans winsock.h */
typedef struct sockaddr_in SOCKADDR_IN; /* idem */
#endif

tu as mis /* include de linux */ alors kil exist encor dotre OS tel ke MACOS, Lindows et tt ça, donc le #else ne sera pas forcement linux, donc ce ki veut dire ke kan qq1 etant sous MACOS compile ce prog il incluera egalement les headers de 'linux' ;) mais bon ce n'est pas un gros pb puiske tu mensionne bien : pour win et linux ;)

et puis en passant par là qq1 serait me dire kel est le define de linux? :
WIN32 -> windobe
MACOS-> Mac os :)
DEBUG -> mode debug

ez pi ien a encor plein si vous pouviez me donner celui pour linux svp :)
merci d'avance ;)
cs_skisoo Messages postés 1 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 13 juillet 2003
13 juil. 2003 à 22:26
idem ça suce toutes les ressources CPU
cs_ExTAS Messages postés 8 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 14 juillet 2003
8 juil. 2003 à 16:42
pas mal ta source le seul petit pb c que sous win en tt ca ca muse 90-100% du proc C UN PE UN GRO pb lol
(jtourne sous xp avec amdxp1900+ ... alors ca vien pas de mon pc...)
gr0ar Messages postés 4 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 6 avril 2006
19 avril 2003 à 22:13
Bah si je viens de réessayer ! un problème de version de libc ou de gcc ?
regarde le screenshot ke jai pris !
http://cppfrance.com/imgs/source/cpp1693.jpg
tu vois ici kil marche parfaitement !
dis moi les erreurs ke tu vois !
GRoAR...
Frostizz Messages postés 39 Date d'inscription jeudi 30 août 2001 Statut Membre Dernière intervention 23 janvier 2005
19 avril 2003 à 21:29
Sous Linux sa compile pas !
gr0ar Messages postés 4 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 6 avril 2006
15 avril 2003 à 01:20
sous win fo juste linker la lib wsock32 (libwsock32.a je crois sous devc++,wsock32.lib sous vc++ mais je suis plus sur)
yafuka Messages postés 236 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 18 juillet 2006 1
15 avril 2003 à 00:10
mettre koi dans les lib ?
Frostizz Messages postés 39 Date d'inscription jeudi 30 août 2001 Statut Membre Dernière intervention 23 janvier 2005
14 avril 2003 à 22:10
c'est kil faut mettre dans les lib sous win32 ?
gr0ar Messages postés 4 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 6 avril 2006
14 avril 2003 à 21:30
bah tu compiles avec quoi ? c au niveau du linkage ke ca foire ? t as mis la lib winsock en link ?
MMm pour le zip jvais le faire ptet un jour :) mais le truc ke ya plusieurs .c (enfin ca change rien) mais bon la ct pour que soit plus simple ! enfin jai testé sous vc++ et devc++ il marche tres bien ainsi ke gcc sous nux :]
yafuka Messages postés 236 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 18 juillet 2006 1
14 avril 2003 à 20:07
il y a plein d'erreur au niveau de l edition des liens . J arrive pas a compiler. :(
yafuka Messages postés 236 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 18 juillet 2006 1
14 avril 2003 à 20:00
tu pourrais mettre le .h et le .c en zip sur le serveur ;)
h4l9000 Messages postés 6 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 21 juin 2003
13 avril 2003 à 13:03
:: ouaou, un très bon exemple sous telnet :) merci groar ;) ca va bcp m'aider dans la realisation d'un client irc, car il s'agit du meme principe.
Rejoignez-nous