2012-03-28 59 views
5

我有一个运行的TCP服务器,它接受命令“GETHELLO”并返回“HELLO”。使用的TCPSocket在ruby中发送和接收TCP数据

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

我怎样才能做到这一点的红宝石: 我在Linux shell中使用Telnet测试吗? (发送“GETHELLO”并读取服务器返回的数据“HELLO”)

谢谢!

回答

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

我编辑使它更Rubyish,而不是使用硬编码的recv缓冲区大小。希望你不介意。 – 2012-03-28 14:41:30

+0

@NiklasB:看起来不错,谢谢。 – maerics 2012-03-28 14:43:17

+0

我尝试这个,但是把sock.gets放回去,并且无限期地等待。谢谢。 – Jeremy 2012-03-28 14:58:58