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

Crash Course sur les Sockets

E336d87407083aa8c7266f02465fd1e2?s=47 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

E336d87407083aa8c7266f02465fd1e2?s=128

JM Lacroix

October 30, 2012
Tweet

More Decks by JM Lacroix

Other Decks in Programming

Transcript

  1. Crash Course sur les Sockets

  2. Modèle Internet

  3. None
  4. Protocoles de transport

  5. 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, ...
  6. 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, ...
  7. None
  8. Sockets

  9. « combinaison d'une adresse IP et d'un port (lié à

    un processus applicatif) formant une seule et unique entité »
  10. 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
  11. UDP TCP

  12. Code! Gist: 3982311

  13. • Utilisation similaire • Communication via l’OS • Point d’entrée

    sur le File System • Parfait pour processus locaux Bonus: UNIX Sockets
  14. • 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$
  15. @jmlacroix Q?