2012-03-28 25 views
5

Tengo un servidor TCP en ejecución que acepta el comando "GETHELLO" y devuelve "HOLA". lo prueba mediante el uso de Telnet en Linux shell:Enviar y recibir datos TCP en ruby ​​

:~$ telnet 192.168.1.10 3000 
Trying 192.168.1.10... 
Connected to 192.168.1.10. 
Escape character is '^]'. 
GETHELLO 
HELLO 

¿Cómo se puede hacer esto en Ruby utilizando TCPSocket? (envíe "GETHELLO" y lea los datos "HELLO" devueltos por el servidor)

¡Gracias!

Respuesta

8
require 'socket' 
sock = TCPSocket.new('192.168.1.10', 3000) 
sock.write 'GETHELLO' 
puts sock.read(5) # Since the response message has 5 bytes. 
sock.close 
+0

Lo he editado para que sea un poco más Ruby y no use un tamaño de búfer recco codificado. Espero que no te importe. –

+0

@NiklasB .: se ve bien, gracias. – maerics

+0

Intento esto, pero no calce sock.gets datos de devolución y esperar indefinidamente. Gracias. – Jeremy

Cuestiones relacionadas