Leaderboard
Popular Content
Showing content with the highest reputation on 28/10/2014 in Messages
-
Bonjour à tous, C'est un sujet aussi intéressent que difficile que nous allons voir aujourd'hui: Le réseau. Nous allons découvrir le réseau de manière théorique et pratique, via ce cours. Nous allons voir tout ça via diverses parties. Tenez-vous bien, après la gestion mémoire, le réseau est la deuxième plus grosse difficulté au niveau de la programmation (ce qui le rends très intéressent!), ce sera un cours principalement théorique (oui, je sais, j'en fais très TRES rarement), et du coup, vous y verrez que très peu de code. Index: 1- Le réseau, en théorie, c'est quoi? 2- En pratique? 3- Différence entre TCP, UDP et UDT (oui oui, ça existe). 4- Quel type de données on peux envoyer en réseau? 5- Synchrone? Asynchrone? Kesako? 6- Un serveur de tchat synchrone (théorique). 7- Notre tchat en version Asynchrone (théorique). 8- Index des fonctions utiles en C (RTFM ). 1- Le réseau, en théorie, c'est quoi? Le réseau définit un moyen pour deux programmes de pouvoir communiquer. Il existe deux définitions du réseau existantes: LAN et INET. De manière générale, le réseau LAN représente le réseau local (nous ne parlerons pas des réseaux VPN qui sont des exceptions à ce niveau là, puisqu'elles créent un réseau LAN virtuel), et les réseaux dis INET représentent les réseaux passant par internet. WOUHOUUUU! La partie théorique a l'aire plutôt bien simple! MAIS, et c'est là que le réseau deviens très cool à connaitre, c'est ULTRA-COMPLEXE à comprendre et en même temps pas si compliqué à mettre en place. Je vais donc essayer de ne pas vous perdre durant ce cours. 2- En pratique? Eh oui, la description ci-dessus simplifie pas mal le fonctionnement du réseau au final. Si nous voulons mettre les mains dans le cambouis, il faut savoir pas mal de choses sur le réseau (bien que pas très importantes dans la programmation en elle même, ça vous permettra au moins de comprendre comment fonctionne le réseau de l’intérieur. Il faut savoir que la couche réseau est la 3ième couche du modèle OSI voyons un peu, pour avoir de la culture info, les 7 couches du modèle OSI: 1- Physique (Le matériel de liaison, carte wifi, blutooth, etc...) 2- Liaison (Gestion de la liaison et de la communication) 3- Réseau (Gestion des couches réseau, IPv4, IPv6, etc...) 4- Transport (Gère la communication en bout des processus, UDP, TCP, etc...) 5- Session (Gère la synchronisation des communications et la gestion des "transactions") 6- Présentation (Code les données applicatives) 7- Application (Définit les points d'accès au service, Nous sommes ICI!) (je vous conseille de jeter un petit coup d’œil sur Wiki, c'est toujours un plus de savoir ce genre de choses , pour vous donner une idée, nous les apprenons par cœur à Epitech (3ième année)) La couche applicative est celle ou nous sommes lorsque nous développons un programme. Toutes les autres couches sont gérées par notre OS, qui fait tout le travail à notre place! Enfin, il faut retenir une chose TRES importante, et qui va beaucoup vous aider: les SOCKETS (système qui permet la communication en réseau) sont des FDs (File descriptors), il sera donc géré comme un fichier, et il faudra toujours penser à FERMER LES SOCKETS! (laisser des FDs ouverts, c'moche! Pauvre kernel ) 3- Différence entre TCP, UDP et UDT (oui oui, ça existe). Ahhh, les protocoles de communication réseau (à ne pas confondre avec les protocoles applicatifs), beaucoup de choix, avec beaucoup de différences. Nous allons voir ça tout de suite: 1- Le TCP Le protocole TCP est actuellement le plus stable et certainement le plus utilisé dans le domaine applicatif (ATTENTION: pas dans le jeu-vidéo). Le TCP comporte 3 grand principes: - Les packets sont certains d'arriver. - Les packets arrivent dans l'ordre. - On a une réponse de la réception du packet par le client. Et tout ça, grâce à un header implémenté dans le packet (oui, le packet est un peu plus lourd). Pour résumer, voici ce qui se passe lorsque vous envoyez un packet TCP: serveur = Envois du packet => client client = J'ai bien reçu le packet! => serveur serveur = Ok merci, j'ai bien reçu la réponse! => client Nous voyons donc qu'il y a 3 envois réseau pour chaque packets, ce qui peux ralentir le réseau pour tout ce qui est temps-réel. ATTENTION NEANMOINS, au vue des connexions internet de nos jours, la différence ne se fait pratiquement pas ressentir. Néanmoins, dans la plupart des jeux, le TCP permet de faire les actions importantes (envois de sorts, pop de monstres, etc...) et l'UDP permet de gérer les actions moins importantes (Déplacements, etc...) pour éviter de surcharger la couche réseau. Même si certains jeux nous montrent bien que le Full TCP, ça peux marcher aussi (RPZ World Of Warcraft). 2- L'UDP L'UDP de manière générale est plus simple, c'est un simple envois de packet ANONYME à un serveur. Cela offre une vitesse 3 fois plus rapide que le TCP mais néanmoins, on ne sais absolument pas sur le packet est bien arrivé au destinataire. Il faut donc apprendre à manier le TCP aussi bien que l'UDP en fonction de ce qu'on veux faire. 2- L'UDT Le cas de l'UDT est totalement différent, car c'est un protocole plutôt jeune qui a été créé pour pouvoir transporter un grand nombre de données (on parle ici de Téraoctets) sur un réseau généralement LAN. Nous n'allons pas en parler ici, mais si vous souhaiter vous renseigner dessus, je vous conseille Wikipedia . 4- Quel type de données on peux envoyer en réseau? Là est la question. Pour faire simple, qu'est-ce qui passe par du réseau, en soite? Eh bien, des données en BINAIRE! Eh oui, c'est des 1 et des 0 qui passent dans nos câbles! On s'y attendais pas, hein? Pour résumer, tant que les données peuvent être stockées en mémoire (soite presque toutes), il est possible de les envoyer en réseau (eh oui, c'est pour ça que le réseau est considéré très proche de la gestion mémoire ). D'une manière générale, faut pas faire l'imbécile, n'envoyez pas des pointeurs en réseau, puisque l'autre machine, n'aura pas allouée ce pointeur . Il faut envoyer des données dites "flat", donc des données et non pas des adresses! Ce qui est très souvent fait, c'est d'envoyer des structures en réseau. ça permet pas mal de chose, mais c'est très peu modulable. Une autre technique, c'est de créer un packet. Voici un exemple du contenu d'un packet: | taille des données dans le packet (4 octets) | données du packet.... | du coup, lorsqu'on reçois ce packet, on lit d'abord les 4 premiers octets pour savoir quelle est la taille du packet complet, et on lit le packet . Bref, de la théorie tout ça! On verra dans un autre cours sur le réseau du code à proprement parlé! 5- Synchrone? Asynchrone? Kesako? Le principe de l'Asynchrone et du Synchrone se retrouve souvent dans les applications ayant plusieurs threads (sous processus). Le principe du Synchrone, c'est d'avoir un thread qui exécute tout de manière Linéaire. Le principe de l'Asynchrone, c'est d'avoir plusieurs threads, ayant chacun un rôle et communicant entre eux. Dans notre cas, le Synchrone en réseau est nommé bloquant alors que l'Asynchrone est nommé non bloquant. Pour faire simple, dans un réseau bloquant, nous attendrons que le client ait bien reçu les informations, alors que dans l'autre cas, nous envoyons les informations en NOWAIT (voir les mans des sockets) et du coup, nous n'attendons pas la réponse TCP. Ce qui nous renvois la taille des données envoyées, et dans le cas ou des données n'ont pas été envoyées, on les renvois. D'une manière générale, le côté bloquant est utilisé dans les clients, alors que le côté non bloquant est utilisé pour les serveurs (eh oui jamie! Si on est bloquant et qu'un client lag, on fait laguer tout le monde! Exemple concret: Starcraft II, mais là encore l'exemple est spécial, puisque SCII, c'est du P2P via servering). Pour l'UDP, il n'est pas question d'être bloquant, puisque nous ne savons pas quand le client reçoit l'information. 6- Un serveur de tchat synchrone (théorique). A VENIR. 7- Notre tchat en version Asynchrone (théorique). A VENIR. 8- Index des fonctions utiles en C (RTFM ). - man 2 socket - man 2 select (une de mes fonctions préférées en C <3) - man 2 accept - man 2 bind - man 2 connect - man 2 listen - man 2 read - man 2 write - man 2 recv - man 2 send - man 7 ip - man 7 socket - man 7 tcp - man 7 udp A bientôt pour un prochain cours! AlexMog.5 points
-
Android s'intéressera aux sucettes pour sa version 5.0 ! Cette version Android prévu pour le 13 novembre aura droit a une retouche graphique...comme l'a eu droit l'OS d'Apple. Déjà, toujours avec le design simpliste, on voit plus de couleur, qui n'étais pas le cas avant. On parle ici de Material Design, ce nom a été donné par Google. N'avez vous pas eu une mis à jour de Play Musique il y a peu ? Eh oui ! C'est pour être mis à jour en Material Design ! Parmi quelques nouveautés ergonomique, en voici quelques une : - la navigation entres les applications est modifié : - ÉVIDEMMENT, le clavier a été modifié : - Nouvelle page de démarrage : En bref, Google prend le même chemin qu'Apple, un interface plus clair, plus coloré, plus simple. Mis a part les nouveautés ergonomique, Lollipop incorpore plus de 5000 nouvelles API et a pour ambition de faciliter l'utilisation parallèle de différents appareils sous Android et les passages de relais entre tablette,smartphone, TV ou encore montre... Pour ce qui le technique pas grand chose pour le moment mis à part, le passage du moteur d'exécution Dalvik au nouveau ART, qui était déjà disponible en preview sur 4.4. Il devrait accélérer l'exécution des applications Android. Voilà.1 point
-
Plop ! Derrière cette phrase assez lugubre, je vais vous présenter un jeu d'infiltration à la première personne que pas mal de monde commence à connaître: Dishonored. Je vais dans un premier temps vous présenter le jeu en lui-même, puis vous montrer quelques images du jeu venant de moi-même, pour finir sur mes ressentis sur l'incroyable gameplay de Dishonored. Sortis le 9 octobre 2012, Dishonored est à la fois un FPS, mais c'est aussi un jeu d'infiltration sur PC, développer par Arkanes Studio et édité par Bethesda Softworks. Vous incarnez Corvo, l'ancien protecteur de l'impératrice. En effet, vous êtes accusés du meurtres de cette impératrice et du kidnapping de sa fille, Emily Kaldwin. Il vous faudra user de toutes vos compétences pour découvrir et révéler au grand jour ce complot qui vous fait passer pour le meurtrier. Magie, exécutions, rapidité et discrétion sont les maîtres mots dans ce jeu. Ses graphismes et son dynamisme vous plongeront dans l'histoire plus qu'incroyable de Dishonored. Images: Avis personnel: Dès la première heure de jeu, nous sommes plongés dans l'histoire et il est dur de s'en défaire. Les mécaniques et les différents scénarios permettent une jouabilité sans égale et un sentiment de liberté complet. Il est possible de réaliser les missions de multiples façons différentes: on peut y aller à la bourrin (ce que je vous déconseille si vous êtes en mode "très difficile") ou à la mode ninja. Il est possible d'upgrader et d'apprendre des pouvoirs grâces à des runes, que l'on doit rechercher partout sur l'île. Les graphismes sont travaillés et cet univers un peu "médiéval" nous plonge complètement dans l'histoire palpitante de Corvo. De multiples missions annexe pour rajouté du piment, qui peuvent avoir des répercutions sur vos futurs missions principales, une IA assez développé. Jouer à ce jeu a été un moment jouissif pour moi, étant fan de jeu d'infiltration, Dishonored a su me convaincre de part son gameplay attractif et sa difficulté. Parce que si vous pensez pouvoir passez tous les doigts dans le nez, vous serez très déçu. Le scénario est pas mal quoique un peu farfelu de temps à autres. Si je devais donner des notes ou des remarques: Graphismes: 16/20. Malgré cet univers un peu médiéval que j'aime beaucoup, certaines choses sont assez mal texturés à mon goût. Cependant j'ai été habitué à du luxueux, donc ça compte pas. Gameplay: 19/20. Plusieurs choix de scénario, toutes vos actions ont des répercutions sur votre partie. Les infiltrations et les exécutions sont très bien réalisés. Vous pouvez choisir de tuer ou simplement d’assommer vos ennemis, ou encore de les tuer un par un. Tout dépend de votre style de jeu: arbalète, fusil, pièges, assassinat à main nue, et j'en passe. Pas de chemins tout tracés: VOUS choisissez où vous allez pour accomplir votre mission. Scénario: 18/20. J'ai été convaincu par ce scénario époustouflant de Dishonored. Durée de vie: 18/20. Avec toutes les missions annexes et les DLC que vous pourrez trouvés, sans oublier les missions principales, vous en aurez pour un moment. Cependant, cela dépend beaucoup du joueur et de ses capacités de réflexions. Plusieurs scénario sont plus rapide que d'autres, qui eux sont plus jouissif et permettent d'obtenir + de bonus. Difficulté: 19/20. Les IAs sont vraiment très bien développés, pour avoir pus torcher le jeu en mode "difficile" et "très difficile". En conclusion, c'est un jeu que je recommande si vous aimez l'infiltration ainsi que l'action, avec un très bon gameplay. Pour moi un jeu incontournable. Sources: - Moi-même - http://www.dishonored.com/pour certaines infos.1 point
-
1 point
-
plop, à première vue ça à l'air très complet, et tu reprends des principes de fonctionnements qui ne sont pas forcément propre au C, comme le sync et l'async, c'est vraiment intéressant. Merci beaucoup !1 point
-
@Knux14 : Bravo pour l'initiative Faudrait faire un guide d'installation de base en français En tous cas cette distro est géniale, foncez l'essayer vous ne le regretterez pas1 point
-
Si tu parle a moi je vient de la terre , mais perso moi au bout d'un moment le jeu vas limite au ralentis ( c'est con hein mais bon ) et donc je réussis a comprendre niveaux de la vitesse1 point
-
J'ai posté ça par simplification, je me suis dis que les personnes ne connaissant pas apt-get update n'iraient surement pas sur ArchLinux voir même CentOs (qui est excellent mais pas le meilleur choix pour découvrir la bureautique & co). Cependant, merci à toi pour les précisions.1 point
-
Chères Melinyiens, Melinyiennes. Je ne savais pas trop oû posté pour mon Shop, donc je poste ici. Vue que je ne suis que débutante dans le graphisme, je ne vais pas faire payée, car ce ne sont pas non plus de jolies choses, et comme je comprend que certains ne peuvent pas payer, je fais gratuitement. Sa ne vous empêche pas de me faire un don pour ces horribles bannières. - Bannières pour Femmes. (La galanterie les hommes. ) - Les Hommes (Et la seulement vous les garçons. ) Voilà, vous aimé une bannière ? Je suis gratuite, commandez désormais votre bannière, prête en deux minutes. Voir même 45 Secondes chrono .1 point
-
Ce sujet a pour but d'être une présentation plutôt synthétique du BlackCoin, cette nouvelle crypto-monnaie. Cependant, en ayant trouvé un excellent guide, je vous le poste ici. Merci aux auteurs de Le Coin-Coin.fr Sourc : http://le-coin-coin....r-le-blackcoin/ Le Blackcoin est une crypto-monnaie existant depuis le 24 Février 2014. Elle a subit un accroissement de sa valeur suite à son implémentation au système de paiement Coinkite. Elle est montée jusqu’à 40 000 satoshis au début du mois de Juin. Mais pourquoi y’a-t-il un tel engouement autour de cette monnaie ? Quelles sont ses particularités et innovations ? Comment va-t-elle évoluer à l’avenir ? Le Blackcoin est une monnaie hybride Proof-of-work et Proof-of-stack. Elle a d’abord été minée massivement pour accélérer sa création monétaire mais elle est désormais en proof-of-stack avec 1% d’intérêts par an. Il y a aujourd’hui 75 Millions de coins en circulation ce qui lui donne au prix du jour (25k satoshis) une masse monétaire de 9 Millions d’euros. C’est donc une monnaie importante sur le marché qui mérite que l’on parle d’elle. CARACTERISTIQUES Elle présente plusieurs avantages : • Le Proof-of-Stake la rend peu gourmande en energie contrairement au monnaie Proof-of-work comme le bitcoin. • Les transactions sont très rapides, première confirmation en 30 secondes et nouveau bloc toutes les minutes. • Son inflation est très faible, le taux d’intérêt étant fixé à 1%. • Elle est médiatique et d’ors et déjà intégrée à un système physique : Coinkite. • Elle possède un grande communauté et une Fondation BLACKHALO Ces avantages ne sont pas négligeables car si on compare cette monnaie au Bitcoin, elle résout presque tous ses problèmes. Mais le plus intéressant n’est pas là. Ce sont les futurs projets annoncés par la Blackcoin Foundation regroupés sous le nom d’une fonctionnalité nommée Blackhalo. DOUBLE DEPOSIT TWO PARTI ESCROW Un programmeur du nom de Dzimbeck a crée ces derniers mois le Blackhalo. Cette outils permet de faire des échanges décentralisés de monnaies différentes. En effet il prévoit d’intégrer directement ce système au portefeuille du Blackcoin. Son but est de supprimer la nécessité d’une tierce personne dans les transactions inter-monnaies. Il a donc mis au point un système nommé double deposit two parti escrow ( approximativement : double dépôt à garanties séparées). Cela permet qu’aucune des personnes ne soit biaisée tout en permettant d’échanger avec n’importe quel inconnu. Cela apporte donc la décentralisation des échanges inter-monnaies. Cela permet à des pays où les transactions bancaires sont surveillées de ne plus être gêné par les virements requis par les exchanges. Les risques dus aux attaques sur des plateformes d’échange sont également réduit à néant. Vos blackcoins sont dans votre portefeuille. Ils parlent même d’inclure la possiblité d’acheter des blackcoins en Fiat, avec des services comme Paypal ou Moneygram. Les contrats sont annoncés comme incassables et fonctionnent comme un pont levant en ce sens que le contrat doit être rempli des deux côtés pour que la transaction puisse avoir lieu. TWO-STEP SEND Une autre fonctionalité apportée par Blackhalo est le partage de compte avec le Two-step send (Envoi à deux étapes), elle permet de mettre en commun des portefeuilles Blackcoin tout en ajoutant un système hierarchique démocratique ou pas. Vous pouvez donc partager votre compte avec des collaborateurs mais il faudra votre confirmation pour que cela fonctionne. Toutes ces innovations font du Blackcoin une monnaie très prometteuse et très sure, je vous conseille donc d’investir dedans avec une espérance de gain qui pourrait largement atteindre 100% (quand on regarde le prix du darkcoin ou du litecoin, le blackcoin semble sous-côté) ou d’au moins jeter un coup d’oeil à leur site. N’hésitez pas à réagir par un commentaire ci-dessous, à signaler une quelconque coquille ou bug par un mail, et à partager l’article sur les réseaux sociaux pour améliorer la visibilité du site. A bientôt sur le forum. Source : http://le-coin-coin....r-le-blackcoin/1 point
