¿Cuál es la mejor red de computadoras para un usuario principiante de Python?

A riesgo de ser gracioso, podría sugerirle que mire Python.org: IRC (Internet Relay Chat). Esto es “redes” (en el sentido social del término) a través de una red informática que utiliza los protocolos IRC.

Aparte de eso, hay numerosos tutoriales sobre el acceso a varios tipos y niveles de redes utilizando Python.

Puede, de forma bastante infame, iniciar un proceso de servidor web (HTTP) con una sola línea corta de Python: `python -m SimpleHTTPServer` … y SimpleHTTPServer es una clase que extiende y utiliza como base para su propia red, en ese caso nivel.

Del mismo modo, puede usar urllib o urllib2 (de las bibliotecas estándar) o las solicitudes Módulo de terceros para trabajar en el lado del cliente de HTTP.

Existen numerosos módulos para trabajar con otras aplicaciones comunes a nivel de protocolos de red. En las Bibliotecas estándar: protocolos y soporte de Internet encontrará referencias para SMTP, POP3 / IMAP, FTP, Telnet y NNTP. Además, hay una gran cantidad de módulos adicionales disponibles gratuitamente para soportar DNS (como dnspython, la suite desarrollada por Nominum para probar su trabajo en DNS / BIND, así como muchos otros módulos, suites y utilidades relacionadas con DNS), SNMP, BGP , NTP, DHCP / Bootp, TFTP, SSH, AMQP y MBus, RDP (protocolo de escritorio remoto) y demasiados otros para enumerarlos aquí.

Al sumergirse más profundo, llega al soporte de nivel Socket. La mayoría de las redes actuales se basan en interfaces de socket para el conjunto de protocolos TCP / IP (TCP, UDP, IP, ICMP y otros). Por lo general, no necesitará desarrollar código a este nivel; estudiarlo puede ayudarlo a comprender mejor el código con el que es más probable que trabaje. La mayoría de los protocolos de capa de aplicaciones están construidos sobre TCP / IP y el soporte de implementación de código para ellos en Python) está construido sobre las API de socket de Python.

Hay algunos sistemas más nuevos que se basan en un conjunto de abstracciones de utilidades, una capa de software adicional, como zeromq o nanomsg.

Una vez que comprenda cómo programar en Python, generalmente, la programación de la red es principalmente una cuestión de aprender los detalles de cada protocolo con el que necesita trabajar. El soporte de Python para estos es en su mayoría bastante sencillo si comprende el protocolo subyacente razonablemente bien.

Incluso es posible, a través de las API de socket estándar en Python, hablar con sockets “en bruto” y, potencialmente, trabajar con protocolos que no sean TCP / IP (por ejemplo, podría construir marcos de ethernet sin encabezados IP, tal vez usando IPX, por ejemplo ) Sin embargo, eso sería un poco como la programación en el enlace de ensamblaje introduciendo valores en la memoria sin procesar: no hay recursos fácilmente accesibles que brinden soporte y abstracción para tales cosas.

Es mejor enfocarse en HTTP y los otros protocolos y API de alto nivel más comunes primero … y profundizar en nichos más específicos más adelante.

Pero mi respuesta graciosa aún se mantiene. Únase al IRC y establezca contactos con personas a nivel social para encontrar a otras personas que estén dispuestas a guiarlo o colaborar con usted.