Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Crash Course sur les Sockets

JM Lacroix
October 30, 2012

Crash Course sur les Sockets

Introduction à la programmation réseau avec les sockets, accompagné d'exemples en Ruby.

Les exemples sont disponibles ici: https://gist.github.com/3982311

Présentation effectuée dans le cadre du OpenCode QC 30-10-2012

JM Lacroix

October 30, 2012
Tweet

More Decks by JM Lacroix

Other Decks in Programming

Transcript

  1. Transmission Control Protocol • Fiable • Ordonné • Lourd -

    « handshake », en-tête complexe • Streaming - Les données sont un flux • Contrôle de congestion HTTP, FTP, SSH, TELNET, SMTP, SSL, ...
  2. User Datagram Protocol • Non-fiable • Non-ordonné • Léger -

    Pas de connexion, en-tête simple • Datagrams - Packets individuels • Pas de contrôle de congestion DHCP, DNS, NTP, VoIP, ...
  3. « combinaison d'une adresse IP et d'un port (lié à

    un processus applicatif) formant une seule et unique entité »
  4. socket() crée une instance de socket bind() lie un socket

    à un port (serveur) listen() attend une connexion (TCP serveur) accept() accepte une connexion (TCP serveur) connect() se connecte à un socket (TCP client) send() envoie des données sur un socket recv() reçoit des données sur un socket sendto() envoie des données (UDP) recvfrom() reçoit des données (UDP) close() termine la connexion
  5. • Utilisation similaire • Communication via l’OS • Point d’entrée

    sur le File System • Parfait pour processus locaux Bonus: UNIX Sockets
  6. • Ruby Socket documentation http://www.ruby-doc.org/stdlib-1.9.3/libdoc/ socket/rdoc/Socket.html • Beej's Guide to

    Network Programming (C) http://beej.us/guide/bgnet/ - Free • Working with TCP Sockets (Ruby) http://workingwithtcpsockets.com/ - 30$