voila j'ai essayé de faire une classe pour rendre l'utilisation des sockets en c++ aussi simple que ce qu'on peut faire avec mirc. vous reconnaitrez donc des trucs qui vous sont familiers genre ON_SOCKREAD, ON_SOCKCLOSE etc...
pour utiliser la classe, il faut deux choses : une fonction void (ProSock*,int) qui va etre chargée d'intercepter les notifications, et un objet de type ProSocket que vous avez initialisé en faisant CreateProSocket(lenomdevotrefonction). cf les exemples de client et serveur telnet pour comprendre ca.
Meme s'il existe un constructeur sans parametre, vous devez toujours pour un seul ProSock utiliser le constructeur avec paramètres pour indiquer le nom de la fonction qui va intercepter les notifications. Sinon elles seront bien envoyées, mais comme personne ne va les intercepter, elles seront perdues.
Pour déclarer un tableau de ProSock qui vont tous utiliser la meme fonction SimpleProc, faites : ProSock::pDefaultFunc = SimpleProc ; ProSock tableau[5]; la premiere instruction permet de mettre la fonction par défaut de la classe à SimpleProc, et c'est cette fonction qui est utilisée par le constructeur sans paramètres.
Tout ca fonctionne un peu comme la fonction DialogBox dont le dernier paramètre est le nom de la fonction qui est censée intercepter les notifications de Windows.
Pour changer le nom de la fonction associée à un ProSocket (celle à qui sont envoyées les notifications), utilisez la méthode SetNewProc(SOCKFUNCT f) de la classe.
J'ai commenté le .h donc lisez le pour connaitre les différentes fonctions et notifications.
Pour utiliser cette classe ds un de vos projets, 2 possibilités : vous mettez ProSock.cpp et ProSock.h dans votre projet, et ds ProSock.h vous enlevez la ligne '#pragma comment(lib,"ProSock.lib")'. Ou bien vous mettez ProSock.lib avec les autres .lib de base (votre compilateur a bien un répertoire lib, sinon mettez le ds le répertoire courant de votre projet), et vous ajoutez juste ProSock.h
Dans visualc++, pour naviguer entre les différents projets, clic droit : Set As Active Project. Ca compile que le projet par défaut donc bon...