Un socket pertenece a un proceso y sirve como medio de comunicación entre otro proceso (sea que esté ejecutandose en la misma máquina u en otra conectada a Internet). Esto nos permite intercambiar información. Para hacer esto posible existen algunos protocolos como TCP o UDP (en el ejemplo práctico usaremos TCP ya que es el más común).
#21:
Qué recuerdos de aquellos días en que eMule daba quebraderos de cabeza para abrir los puertos TCP y UDP, y poder así quitar la "IdBaja" que ponía la venda en los ojos a la mula. Cuando los puertos estaban correctamente abiertos (permitía la correcta comunicación cliente-cliente p2p), entonces se podía descargar/subir correctamente.
Muchos usuarios se quejaban de lo lento que era eMule, pero en la mayoría de los casos, era porque tenían la venda puesta
#9:
Si no sabes que es Trumpet WinSock no eres suficientemente viejo
#29:
Flojillo, flojillo... Dice "sockets" pero en realidad habla únicamente de IP sockets. Y, además, si algo no es un socket es precisamente un dispositivo. Un socket es un handle (que en 'nix suele implementarse como file descriptor) al que, en todo caso, se le podría hacer bind a un dispositivo. La mejor manera de verlo es simplemente como un endpoint al que podemos conectar otro y establecer una comunicación entre procesos.
Puede parecer una pejiguería, pero si ves un socket como definido por la dirección IP y un puerto ¿cómo encajas la idea de hacer bind con varios sockets a un mismo puerto?
#8:
#6 sí, cada vez se va pareciendo a un lenguaje de programación. Lastima que a estas alturas sea un Frankenstein.
#1:
Meneo porque hace mucho que no oía hablar de sockets y me ha traído recuerdos. Mierda de JavaScript
#38:
#37 javascript.info Allí tienen el tutorial con solo la parte moderna.
#9 jajajaja que tiempos, mi primera conexión a internet la hice contratando el servicio en una empresa de informática a 10 kilometros de mi pueblo, me dieron un disquette con el trumpet winsock para mi windows 3.11, y cada mes tenía que ir presencialmente a pagar 30.000 pesetas del año 1996 (creo) .... más adelante vi una oferta en Bankinter que si te abrías una cuenta te regalaban una conexión a internet...
#6 Javascript tiene 2 formas de desarrollo como mínimo que las puedes mezclar. No tengo mucho conocimiento de JavaScript pero es como tener 2 lenguajes diferentes en el mismo tiempo. El Ecmascript 6 que cambió un montón de cosas y lo anterior. Y puedes mezclar ambos.
#34 Me refería a la versión. La versión 6 cambió completamente JavaScript. Metió let y const para declarar las variables e hizo anticuado el bar. Metió class, las funciones flecha (anónimas), etc.
Con lo que tienes que ahora puedes mezclar el estilo clásico con el nuevo. O puedes tener código nuevo en partes y viejo en otras. Lo cual genera el Frankenstein al que se refieren.
Por ejemplo a mi me ha costado encontrar documentación moderna. Mezclan ambas cosas en muchas guías. Lo cual si aprendes JavaScript como yo, no sabes lo que es adecuado o no. Finalmente encontré una página que explica exclusivamente el JavaScript moderno.
#6 A ver, hace 10 años era una mierda, y ahora es una mierda parchada.
Si en vez de dedicar tanto esfuerzo por hacer andar algo roto lo hubieran hecho de nuevo, como se debe, daría menos dolores de cabeza.
#13#25 Incluso de aquellas era un lenguaje potencialmente bueno, por eso se ha convertido en lo que es, porque estaba la potencia ahí...
Sencillamente, la gente que lo usaba de aquellas no lo sabía.
Qué recuerdos de aquellos días en que eMule daba quebraderos de cabeza para abrir los puertos TCP y UDP, y poder así quitar la "IdBaja" que ponía la venda en los ojos a la mula. Cuando los puertos estaban correctamente abiertos (permitía la correcta comunicación cliente-cliente p2p), entonces se podía descargar/subir correctamente.
Muchos usuarios se quejaban de lo lento que era eMule, pero en la mayoría de los casos, era porque tenían la venda puesta
Flojillo, flojillo... Dice "sockets" pero en realidad habla únicamente de IP sockets. Y, además, si algo no es un socket es precisamente un dispositivo. Un socket es un handle (que en 'nix suele implementarse como file descriptor) al que, en todo caso, se le podría hacer bind a un dispositivo. La mejor manera de verlo es simplemente como un endpoint al que podemos conectar otro y establecer una comunicación entre procesos.
Puede parecer una pejiguería, pero si ves un socket como definido por la dirección IP y un puerto ¿cómo encajas la idea de hacer bind con varios sockets a un mismo puerto?
#33 se refiere, igual que el artículo aunque no hace mención alguna, a BSD sockets, que es una abstracción para diferentes métodos de comunicación (TCP/IP, UNIX, y muchos más).
#33 Unix socket sería la "familia" para operar en el dominio local. El protocolo se conoce como Berkeley sockets, o BSD sockets como bien dice #40, y no es más que otra manera de abrir un descriptor y comunicarse a través de él. Del mismo modo que puedes utilizar la llamada al sistema open para abrir uno en el fs y utilizar operaciones como write o read, puedes abrirlo con socket y utilizar send, recv, listen...
La diferencia fundamental es que con open estás moviendo bloques o páginas y con socket paquetes. Técnicamente también puedes utilizar open para interactuar con un puerto TCP... pero a partir del segundo paquete sería un buen follón Eso suele hacerse para chequear puertos desde shells en los que no tienes acceso a comandos de red, p. ej. con cat < /dev/tcp//22 puedes comprobar si esa máquina está escuchando en el puerto 22.
Hay muchas otras familas además de Unix e IP, algunas para protocolos que yo creo que ni existen Y también existen los raw sockets, que operan en capa 3 (sin info de puerto), el protocolo del mítico ping (ICMP) trabaja con raw sockets, p.ej.
Resumiendo, socket es un protocolo (una llamada al sistema con una serie de operaciones asociadas) para intercomunicar procesos.
#40 Anda, no sabía que había una traducción al español. Esa guía es oro.
Un socket es un conector que permite a un procesador comunicarse con la memoria principal y periféricos de E/S. Puede estar hecho de contactos o pines.
Siempre que hablo de estos temas me hago un lío utilizando de manera alternativa port o socket... luego me viene el masca, me tira de las orejas..y cambiamos de conversación - aún no estoy muy convencido de que él lo sepa a ciencia cierta...
(addenda: por lo que tengo visto un port puedes abrirlo con ninguna funcionalidad; mientras que el socket utiliza un port - entre otras cosas - dado que ahí se efectuará algún tipo de actividad....)
Comentarios
Si no sabes que es Trumpet WinSock no eres suficientemente viejo
#9 jajajaja que tiempos, mi primera conexión a internet la hice contratando el servicio en una empresa de informática a 10 kilometros de mi pueblo, me dieron un disquette con el trumpet winsock para mi windows 3.11, y cada mes tenía que ir presencialmente a pagar 30.000 pesetas del año 1996 (creo) .... más adelante vi una oferta en Bankinter que si te abrías una cuenta te regalaban una conexión a internet...
#49 Yo también use la conexión de internet que regalaba el Bankinter con sus cuentas. Nexo creo que se llamaba (usuario@nexo.es)
#51 OSSSTIA SI!!!! EXACTO !!!
antes era usuario de la BBS Burriana Paris Y Londres
gracias por el recuerdo!
#6 sí, cada vez se va pareciendo a un lenguaje de programación. Lastima que a estas alturas sea un Frankenstein.
Meneo porque hace mucho que no oía hablar de sockets y me ha traído recuerdos. Mierda de JavaScript
#1 ¿Por qué tanto odio a JS?
#4 ...la ignorancia tiene esas cosas... hay quien cree que Javascript es lo que era hace 10 años...
#6 uso react
#10 Pues que existencia mas miserable... un frontender que odia Javascript
#12 Como lo sabes
#12 Es que no te queda otra. O usas JavaScript o no haces un frontend. Así que no te queda otra que tragar.
#6 Javascript tiene 2 formas de desarrollo como mínimo que las puedes mezclar. No tengo mucho conocimiento de JavaScript pero es como tener 2 lenguajes diferentes en el mismo tiempo. El Ecmascript 6 que cambió un montón de cosas y lo anterior. Y puedes mezclar ambos.
#31 ECMAScript es el estandar sobre el que se basa cualquier lenguaje de programación web en el lado del cliente.
#34 Me refería a la versión. La versión 6 cambió completamente JavaScript. Metió let y const para declarar las variables e hizo anticuado el bar. Metió class, las funciones flecha (anónimas), etc.
Con lo que tienes que ahora puedes mezclar el estilo clásico con el nuevo. O puedes tener código nuevo en partes y viejo en otras. Lo cual genera el Frankenstein al que se refieren.
Por ejemplo a mi me ha costado encontrar documentación moderna. Mezclan ambas cosas en muchas guías. Lo cual si aprendes JavaScript como yo, no sabes lo que es adecuado o no. Finalmente encontré una página que explica exclusivamente el JavaScript moderno.
#35 Pues pasame esa pagina porfa
#37 javascript.info Allí tienen el tutorial con solo la parte moderna.
#38 Muchas gracias
#41 Mira mi comentario #38
#35 comparte
#34 Actionscript sin ir mas lejos era ECMAScript sin ser Javascript.
#6 A ver, hace 10 años era una mierda, y ahora es una mierda parchada.
Si en vez de dedicar tanto esfuerzo por hacer andar algo roto lo hubieran hecho de nuevo, como se debe, daría menos dolores de cabeza.
#4 De un lenguaje hecho en 10 días no pudo salir nada bueno.
#11 Pues yo debo ser un rarito porque a mí programar en JS y en TS me gusta...
#13 Sobre todo TS. Está muy bien pensado el jodido.
#13 no eres rarito, eres joven. Instalate un Netscape 4.0 en una máquina virtual, haz algo, lo vuelves por aquí
#13 #25 Incluso de aquellas era un lenguaje potencialmente bueno, por eso se ha convertido en lo que es, porque estaba la potencia ahí...
Sencillamente, la gente que lo usaba de aquellas no lo sabía.
https://www.crockford.com/javascript/javascript.html
#25 40 años y joven
Me encanta esta web...
#53 Es la sociedad, la de noticias de "muere persona joven de tan solo 45 años" que he visto...
#53 Un chaval. En los tiempos de Netscape 4 tu colonia era nenuco.
#13 Pues yo desde que aprendi TS, cada vez me gusta menos JS.
#11 hecho en 10 días y arreglado en 25 años.
#4 Porque no usan typescript
#1 Javascript tiene WebSockets.. y son una maravilla..
https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
Un ejemplo de uso de WebSockets :
https://webtorrent.io/
#5 Sabés qué hay por debajo de los websockets? Un socket real.
Websockets es un parche para mejorar la performance en la web. Si sólo es stack web fuera repensado en vez de parcharlo constantemente...
#1 A día de hoy hay infinidad de lenguajes que compilan a JavaScript, como ClojureScript, Scala.js, CoffeeScript, PureScript,…
Nadie te obliga a usar JavaScript, incluso para hacer frontend. Otra cosa es que te paguen por ello y haya necesidad.
Qué recuerdos de aquellos días en que eMule daba quebraderos de cabeza para abrir los puertos TCP y UDP, y poder así quitar la "IdBaja" que ponía la venda en los ojos a la mula. Cuando los puertos estaban correctamente abiertos (permitía la correcta comunicación cliente-cliente p2p), entonces se podía descargar/subir correctamente.
Muchos usuarios se quejaban de lo lento que era eMule, pero en la mayoría de los casos, era porque tenían la venda puesta
#21 ehhh no hables en pasado!!!
Flojillo, flojillo... Dice "sockets" pero en realidad habla únicamente de IP sockets. Y, además, si algo no es un socket es precisamente un dispositivo. Un socket es un handle (que en 'nix suele implementarse como file descriptor) al que, en todo caso, se le podría hacer bind a un dispositivo. La mejor manera de verlo es simplemente como un endpoint al que podemos conectar otro y establecer una comunicación entre procesos.
Puede parecer una pejiguería, pero si ves un socket como definido por la dirección IP y un puerto ¿cómo encajas la idea de hacer bind con varios sockets a un mismo puerto?
#29 Te refieres a un Unix socket?
#33 se refiere, igual que el artículo aunque no hace mención alguna, a BSD sockets, que es una abstracción para diferentes métodos de comunicación (TCP/IP, UNIX, y muchos más).
De ahí que el artículo sea bastante flojillo.
Siempre recomiendo la guía de “Beej”, que lo explica todo de maravilla. Aquí en castellano (PDF!) http://index-of.co.uk/Programming/Beej-Programacion-en-Redes.pdf
#40 Gracias por la guía!
#33 Unix socket sería la "familia" para operar en el dominio local. El protocolo se conoce como Berkeley sockets, o BSD sockets como bien dice #40, y no es más que otra manera de abrir un descriptor y comunicarse a través de él. Del mismo modo que puedes utilizar la llamada al sistema open para abrir uno en el fs y utilizar operaciones como write o read, puedes abrirlo con socket y utilizar send, recv, listen...
La diferencia fundamental es que con open estás moviendo bloques o páginas y con socket paquetes. Técnicamente también puedes utilizar open para interactuar con un puerto TCP... pero a partir del segundo paquete sería un buen follón Eso suele hacerse para chequear puertos desde shells en los que no tienes acceso a comandos de red, p. ej. con cat < /dev/tcp//22 puedes comprobar si esa máquina está escuchando en el puerto 22.
Hay muchas otras familas además de Unix e IP, algunas para protocolos que yo creo que ni existen Y también existen los raw sockets, que operan en capa 3 (sin info de puerto), el protocolo del mítico ping (ICMP) trabaja con raw sockets, p.ej.
Resumiendo, socket es un protocolo (una llamada al sistema con una serie de operaciones asociadas) para intercomunicar procesos.
#40 Anda, no sabía que había una traducción al español. Esa guía es oro.
Tiene otra sobre métodos de IPC para Unix que también está dpm. Ahí habla de los Unix sockets.
Os dejo este enlace porque sé que por aquí los sabéis apreciar:
https://tools.ietf.org/html/rfc147
Un mitjó menudet.
#7 Un calcetinete, menos mal que no he sido el único.
El agujero va dentro del pie
Un socket es un conector que permite a un procesador comunicarse con la memoria principal y periféricos de E/S. Puede estar hecho de contactos o pines.
#18 Haces honor a tu nick.
yo creía que un socket servía para incrustar gemas y runas a objetos y hacerlos más poderosos
Edito: es muy mala
(broma semántica Soxhlet = Socket)
Siempre me pasa lo mismo con python, empiezo a leerlo y digo "que bonico" sigo leyendo y pienso "faltan cosas, vaya lío" 😅
Siempre que hablo de estos temas me hago un lío utilizando de manera alternativa port o socket... luego me viene el masca, me tira de las orejas..y cambiamos de conversación - aún no estoy muy convencido de que él lo sepa a ciencia cierta...
(addenda: por lo que tengo visto un port puedes abrirlo con ninguna funcionalidad; mientras que el socket utiliza un port - entre otras cosas - dado que ahí se efectuará algún tipo de actividad....)
¿? De los envíos más inexplicables que he visto en portada.
Vaya mierda de redacción. El primer párrafo está redactado con el culo.
Y habla de la misma máquina o internet. Será que no sabe que existen redes locales...
¿Por qué usa paréntesis para frases que podría separar pefectamente con comasbo con puntos?
Qué recuerdos cuando usaba telnet para generar sockets (conexiones)
Dice que un socket es cómo un "dispositivo". Y qué es un dispositivo?
#16 Lo contrario a un disnegativo.
#16 es como un socket.
Añadimos recursividad y vamos para bingo
#16 Un chisme.
Con los sockets se pueden también ejecutar aplicaciones y capturar su salida, adaptandolas a muestras necesidades.