Yo diría que no es útil para la mayoría de los programadores en la práctica real (excepto para los fabricantes de hardware) . Las principales razones relacionadas con el trabajo para aprenderlo serían optimizar los servidores de nivel de juego / financiero / centro de datos, ciberseguridad o escribir su propio navegador web / sistema operativo / base de datos. Probablemente olvidé algunos otros casos de uso, pero el punto es que el número real de personas necesarias para estos trabajos es lo suficientemente bajo como para que normalmente solo contraten a los mejores de los mejores .
casi cualquier otro escenario (que no sea hardware) que creas que necesitas una comprensión profunda de la programación de socket, realmente no lo necesitas. reinventar un nuevo protocolo / infraestructura de socket es una gran pérdida de tiempo para la mayoría de las empresas. Si trabajas para una empresa relacionada con la web (lo que casi seguro harás), la mayoría de los ingenieros frontend se negarían rotundamente a utilizar tu “protocolo de socket nuevo y mejorado”. el protocolo http existente es “suficientemente bueno” para el 99% de los casos de uso de negocios. y http es lo suficientemente maduro en todos los lenguajes de programación, que raramente tiene que depurar su implementación de socket de bajo nivel (a menos que sea un ingeniero de sistemas).
para la persona que lo contrató, todo lo que realmente le importa es que el sitio web frontend puede hablar de manera confiable con el backend. y el backend más confiable es uno que usa http, donde normalmente no se requeriría una depuración de socket de bajo nivel.
- ¿Qué se puede lograr si conoce la dirección IP del enrutador de alguien? ¿Puedes DOS, haciendo que su acceso a Internet sea lento?
- ¿Dónde está conectado el modelo OSI a la red?
- Protocolos de red: en una conexión de capa de transporte entre dos procesos de host, ¿cómo conoce el proceso de host de destino la dirección IP del host de origen?
- ¿Qué son los puertos TCP? ¿Qué significa TCP?
- ¿Puedo agregar un programa de socket a mi aplicación de Android?