Articles of zócalos de

Ruby’s GServer solo quiere trabajar en localhost

TCPServer.new (puerto) crea un servidor que puede atender solicitudes desde máquinas locales o remotas. Pero GServer.new (puerto) crea un servidor que solo puede atender solicitudes de localhost. Al observar la fuente de GServer, llama a TCPServer.new (@ host, @ port). @host por defecto es DEFAULT_HOST que es 127.0.0.1. La fuente para TCPServer.new dice: # TCPServer.new([hostname,] […]

¿Cómo creo TCPSockets persistentes?

Tengo un servidor que envía dos mensajes al cliente en una fila: require ‘socket’ require ‘thread’ connections = [] server = TCPServer.new(9998) loop do Thread.start(server.accept) do |client| client.print ‘Once’ client.print ‘Upon a time.’ end #eo Thread end #eo infinte loop El cliente es: require ‘socket’ client = TCPSocket.new(‘localhost’, 9998) 2.times { print client.read } client.close […]

La demostración básica del servidor Ruby TCP falla al iniciarse: `bind ‘: dirección ya en uso, Errno :: EADDRINUSE

Estoy presentando una simple demostración del servidor TCP en Ruby. Mi primera demostración es el uso de métodos clásicos de estilo C de vinculación-escucha-aceptación-lectura-escritura-cierre. Este código funciona bien por primera vez: require ‘socket’ class Server def start(bind: ‘127.0.0.1’, port: nil, backlog: 1) Socket.new(:INET, :STREAM).tap do |sock| sock.bind Addrinfo.tcp bind, port sock.listen backlog # the codes […]

Clase de servidor Ruby Tcp con funcionalidad de no locking o multihilo

No se puede encontrar ninguna gem o clase que pueda ayudar a crear un servidor multihilo sin locking. ¿Dónde encontrar alguno?

Entendiendo IO.seleccione cuando lea socket en Ruby

Tengo un código que estoy usando para obtener datos de un socket de red. Funciona bien, pero me abrí paso a través de prueba y error. Admito humildemente que no entiendo completamente cómo funciona, pero realmente me gustaría. (Este fue un código de trabajo de carga cultivada que encontré) La parte que no entiendo comienza […]

La escritura de Ruby TCPSocket no funciona, pero si pone?

Estoy trabajando en una aplicación cliente / servidor Ruby TCP usando GServer y TCPSocket. Me he encontrado con un problema que no entiendo. Mi cliente de TCPSocket se conecta con éxito a mi GServer, pero solo puedo enviar datos usando las entradas. Las llamadas a TCPSocket.send o TCPSocket.write no hacen nada. ¿Hay algo de magia […]

¿Cómo obtener la dirección IP de mi máquina de Ruby sin aprovechar otra dirección IP?

He buscado en todas partes, pero su solución requiere algún tipo de dirección IP. Aquí están las soluciones que he encontrado. require ‘socket’ #METHOD 1 ip = IPSocket.getaddress(Socket.gethostname) puts ip #METHOD 2 host = Socket.gethostname puts host #METHOD 3(uses Google’s address) ip = UDPSocket.open {|s| s.connect(“64.233.187.99”, 1); s.addr.last} puts ip #METHOD 4(uses gateway address) def […]