¿Cuál es la mejor manera de aprender programación de red? Quiero aprender sobre Sockets, Streams, etc. construyendo algo. ¿Hay buenos tutoriales en línea o libros que pueda comprar?

Ser capaz de hacer programación de red implica conocer bien sus protocolos y sus bibliotecas.

Para desarrollar una sólida comprensión de los protocolos que impregnan la pila de Internet y tener una idea general de las redes, aquí hay algunos clásicos:

TCP / IP ilustrado, volumen 1: los protocolos

Redes informáticas: un enfoque de arriba hacia abajo (6ª edición): James F. Kurose, Keith W. Ross: 9780132856201: Amazon.com: Libros

En cuanto a aprender a codificar y usar la API de socket, este es un buen recurso en línea:

Guía de Beej para la programación de redes

Hoy, para la mayoría de los casos de desarrollo que involucran sistemas en red, es raro que escriba su propio código de socket. En su lugar, se basará en marcos RPC (como Apache Thrift o Protocol Buffers), o simplemente hará que sus servicios se comuniquen entre sí a través de API RESTful utilizando HTTP como transporte.

También es importante poder pensar ‘distribuido’ cuando desarrolla sistemas en red. Esto implica al menos estar al tanto de las Falacias de la Computación Distribuida, como lo afirma Leslie Lamport, que citaré de Wikipedia:

  1. La red es confiable.
  2. La latencia es cero.
  3. El ancho de banda es infinito.
  4. La red es segura.
  5. La topología no cambia.
  6. Hay un administrador
  7. El costo de transporte es cero.
  8. La red es homogénea.

Por lo tanto, un libro sobre sistemas distribuidos también lo ayudará eventualmente. Recomiendo estos:

Hojee este para obtener una descripción general rápida:
Amazon.com: Distributed Systems: Concepts and Design (5th Edition) (9780132143011): George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair: Books

Este libro lo prepara muy bien para pensar y razonar sobre los sistemas distribuidos, cómo progresar en un sistema de manera segura cuando ocurren diferentes tipos de fallas, y así sucesivamente:
Introducción a la programación distribuida confiable y segura

Espero que esto ayude.

Aprendí lo que sé de un curso en la universidad. Gran parte de esa información también se puede encontrar en línea, aunque un libro será más fácil y más enfocado. Ya has recibido algunos buenos enlaces de otras respuestas; También he usado el tutorial de Beej ( http://beej.us/guide/bgnet/ ).

Un buen comienzo es comprender las capas y la historia de las redes. Aquí hay un artículo para usted: http://en.m.wikipedia.org/wiki/I

Algunas ideas para el estudio práctico de redes:

  1. Aprenda a usar ipconfig / ifconfig (Windows / Mac) lo suficientemente bien como para conocer su dirección IP local. Lo necesitará cuando comience a escribir programas y tenga que decirle dónde conectarse para una prueba.
  2. Puede conectar su computadora a sí mismo utilizando la dirección de host local especial: 127.0.0.1
  3. Adquiera dos computadoras y escriba un programa simple para enviar un mensaje de ida y vuelta. Esto es sorprendentemente complicado, pero una vez que lo tienes en marcha, es bastante sencillo descubrir el resto.
  4. Sugiero tomar una copia de wireshark ( https://www.wireshark.org/ ) y ponerlo en funcionamiento. Es una herramienta de diagnóstico para redes, pero también se puede usar solo para ver lo que se envía a través de la red. Puede ver lo que su navegador envía y recibe cuando visita una página web, por ejemplo.

Para aprender a programar en red, primero debes aprender, los protocolos de red de la computadora y cómo funcionan.

Si tiene conocimiento de redes informáticas y comunicación, descargue API para redes ‘UNIX NETWORK PROGRAMMING -API ‘ de GitHub y configure su máquina y compilador.

Ahora tiene que descargar o puede comprar ” Programación de red Unix -La ​​API de red de socket de W.RICHARD STEVEN ” reservar y comenzar a aprender …

Buena suerte…

Cuando comience la programación de la red, seguramente se confundirá con el lugar donde debe aterrizar para comenzar. Yo también estaba en la misma etapa. Entonces, un día, mi alma confundida descubrió el tutorial de Beej para la programación en red. Lo disfrutarás y ahí viene el giro. Tu mente se atascará en “ESTRUCTAS” en el capítulo 3. No te decepciones ahora. Es justo lo que vas a dar por sentado. Simplemente escriba esas estructuras desordenadas en un papel y cuando pase a los próximos capítulos, obtendrá las diferentes funciones y aparecerá su nota práctica anterior. Simplemente lea el código y donde sea que encuentre esas cosas de estructura, use su papel y listo. Comprenderás las cosas que parecían desordenadas antes. Dar especial importancia a la función getaddrinfo (). Una vez que haya entendido esa cosa desagradable, el descanso será intuitivo y disfrutará de su viaje. Y después de terminar este gran tutorial, está en un buen nivel para hacer que su programación de red sea excelente. Si desea profundizar más, consulte el libro “Linux Network Programming” de W.Richard Stevens. Al completar ese gran libro sabrás por ti mismo a dónde quieres ir ahora. Disfruta de las redes.

SG; -]

Simple, diseñando su propio servidor de chat. Disfrutarás de la actividad y aprenderás mucho.

Como referencia, puede consultar los siguientes libros:

  1. http://beej.us/guide/bgnet/outpu
  2. Compre la programación de la red Unix: la API de Sockets Networking – Vol.1: La API de Sockets Networking – Volumen 1 Reserve en línea a precios bajos en India

la programación de red de richard stevens es una buena compra si quieres una comprensión profunda