--------------------------------- ( 2. Over-clocking de grille-pain ) --------------------------------- *. Avant de commencer -=-=-=-=-=-=-=-=-=-=-= Il est d'abord nécessaire de revoir la chartre du programmeur, les principales règles à respecter... 10 commandements exactement :) Voilà donc le réglement intérieur du parfait programmeur : 1. Ne jamais faire simple quand on peut faire compliqué, exemple pour afficher un message, on préferera une ligne du genre : for (i=0, i<=int rand*99999, i++) { printf("\nProg\irulez"); } plutôt que : printf("Progrulez"); ... 2. Ne jamais insérer de commentaires dans son programme, ou alors des commentaires qui n'ont rien à voir avec le programme. 3. Recopier les codes sources des autres et mettre son nom à la place peut être également une très bonne idée, à condition de changer deux trois trucs... 4. Si quelqu'un vous pose une question sur votre programme, tachez de répondre le moins clairement possible, ou encore d'ignorer votre interlocuteur. Sinon il pourrait penser que vous êtes un gars cool, et risquerait de vous poser d'autres question chiantes... 5. Ne jamais rendre le code source d'un programme dans les temps prévus, sinon on pourrait penser que le programme était facile à mettre en place, et donc on vous manquerait de respect. 6. Ne jamais créer des programmes pouvant être utile pour les autres gens, sinon on vous respecterait trop, et on pourrait encore une fois vous poser des questions. 7. Ecrire donc surtout des programmes sans intêret, sans aucun sens, ou qui développent des ressources encore inutilisables pour l'instant (comme c'est le cas pour le programme) 8. Pour créer un programme, vous pouvez aussi reprendre des codes sources que vous aviez auparavant écris, ne vous inquietez pas, personne ne se doutera de rien. 9. La programmation peut rendre dépendant, alors n'en abusez pas trop où vous ne tarderez pas à rejoindre le club des "Programmeurs Anonymes", c.f : Première ligne, J.M Laclavetine 10. Afin de peaufiner votre travail, n'hésitez pas à rajouter des petits commentaires du style "Thanks untel", comme c'est le cas pour le programme que je vais vous présenter. En effet, ces remerciements vous permettront de montrer aux gens que vous avez des amis... Et puis, la règle ultime, bien sûr, c'est de NE PAS PROGRAMMER, ça peut être très mauvais pour la santé pensez-y... Bon, allez now on va apprendre à overclocké un grille-pain, en respectant bien naturellement les dix commandements du parfait programmeur... LOL 1. Le principe -=-=-=-=-=-=-=- Si il y'a une question existentielle que tout le monde s'est posé au moins une fois dans sa vie, c'est sûrement celle-ci : "Peut on griller des tartines à partir de son pc ?" Après de nombreuses heures de travaux intempestifs, j'ai enfin crée LE programme, le seul, qui vous permettra de connecter votre grille-pain à votre pc. Alors, comment kon fé ??? Et bien pour cela c'est très simple, nous allons connecter notre grille-pain sur le port USB qui va se connecter au socket de notre tartine (si si je vous assure !). Cette connection va amplifier progressivement la chaleur de l'unité centrale, et provoquer au final un court circuit complet dans un rayon d'action de 200 mêtres carrés... Pour cela nous allons donc créer un programme, qui permetra à n'importe quel utlisateur lambda de faire griller ses propres tartines sur son pc, au moyen de la chaleur dégagée par l'UC... En effet, vous imaginez bien, votre pc ne va pas se mettre à griller vos tartines par magie... Etudions donc les différentes structures de ce programme. NB : Malgrès mes nombreuses recherches sur le sujet, je n'ai pas encore trouvé comment faire pour connecter un grille-pain sur Internet. Alors, si vous le savez contactez moi, la science en a besoin !! nickairmax@caramail.com 2. La structure de notre socket -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Si vous êtes habitués à la programmation réseau , vous savez déjà comment se compose la création d'une socket en C, c'est à dire: int socket(int domain, int type, int protocol); Où : - domain représente le domaine d'adressage de la socket. Pour notre grille-pain, le domaine sera donc AF_GRILLEPAIN , conformément aux documents RFC 23/9/14/4/15/23/19 (pouah y'a du billou la dessous :p) - type représente la manière dont la socket va transmettre les données. Donc, dans notre programme le type sera SOCK_USB , car nous transmettrons les données du port USB au grile-pain - protocol désigne le protocole employé par la socket. Ici, cela sera le protocole IP_PROTO_TARTINE , numéroté 65536 sur la liste des ports... Nous savons donc comment se formera la socket de notre grille-pain : Tartine = socket(AF_GRILLEPAIN, SOCK_USB, IPPROTO_TARTINE) Ces domain, type et protocol spécifique sont contenus das la librairie sys/tartine.h . Maintenant on va s'occuper de la cuisson de la tartine, défini dans la fonction grillage(), ellemême définie dans la librairie de fonctions sys/grille-pain.h . Cette fonction s'organise comme ça : grillage(tartineName, Voltage, durée) Où Voltage et Durée sont normalement définis dans les headers. (A noter que durée est facultatif dans cette fonction, si la durée a déjà été incrémentée dans la boucle for, ce qui est le cas ici) Voilà, vous savez tout, place au programme complet. 3. Le code source -=-=-=-=-=-=-=-=-= /********************** GrillageTotal.c , By [Kefka] ***********************/ /* Si vous comprendez quoi que ce soit au programme, veuillez me contactez */ /* Idem si vous arrivez à vous procurer les librairies décrites ci dessous */ /* Contactez moi donc à nickairmax@caramail.com ou retrouvez moi sur irc.. */ /***************************************************************************/ /* Déclaration des directives G/T (grille-pain/tartine) et E/S (entrée, sortie) */ #include #include #include #include /* Déclaration des define */ #define Voltage = 220 // 220 volts pour la France #define Durée = 180 // 3 minutes me semble être une bonne durée pour faire griller une tartine alimentée par 220 volts... (dsl je suis TRES mauvais cuisinier) int grille-pain(char tartine[], int durée) // Fonction grille-pain, thanks "Le livre du parfais cuisinier" { struct sockaddr_in addrsocket; // Structure sockaddr struct hostent *tartine; // Déclaration de la structure hostent, qui porte sur le pointeur "tartine" tartine = getcountrybyVoltage(tartineName); // Localisation de la tartine en fonction du voltage (ici 220 volts) addrsocket.sin_family = AF_GRILLEPAIN; // Initialisation des structures, enfin bref... addrsocket.sin_addr = *(struct in_addr*)tartine -> h_addr; // Affectation de l'adresse du socket printf("Lancement de: , tartine -> h_name); // Affichage de l'adresse IP de la tartine en fonction de sa localisation for (i=0, i<= durée, i++) // Boucle for, qui détermine la durée de la cuisson ;) { tartine = socket(AF_GRILLEPAIN, SOCK_USB, IPPROTO_TARTINE); // Notre fameuse socket de tartine, que l'on connecte au port USB grillage(tartine, Voltage); // La fonction grillage() s'occupe de la cuisson printf("La tartine %s est prête à être mangée, bon appetit !!\n", tartinename); // La tartine est grillée, cool close(tartine); // on ferme la socket de la tartine } } } int main(void) // Notre fonction principale printf("Bienvenue dans GrillageTotal , codé par [Kefka]\n"); printf("Veuillez insérez la tartine dans le grille pain, donnez un nom à votre tartine et appuyez sur entrée\n"); scanf(" %s", tartinename); if(connect(tartine,(struct sockaddr *)&addrsocket, sizeofaddrsocket)>=0) // On teste si la connection a reussi... { grille-pain(tartinename); // Et si oui, alors on apelle la fonction grille-pain() pour griller la tartine. } return 0; } 4. Bonus -=-=-=-=-= Pour compiler : gcc GrillageTotal.c -o GrillageTotal Attention tout de même à ne pas trop abuser avec ce programme, car il est succeptible d'être dangeureux, surtout si vous arriver à le faire fonctionner... Très prochainement, le détail des librairies de fonctions utlisées !!! Bon fun, à bientôt !!!