2012-03-28 36 views
5

Tôi có một máy chủ TCP đang chạy chấp nhận lệnh "GETHELLO" và trả về "HELLO". Tôi kiểm tra bằng cách sử dụng Telnet trong vỏ linux:Gửi và nhận dữ liệu TCP trong ruby ​​

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

Tôi có thể làm điều này bằng ruby ​​bằng cách sử dụng TCPSocket? (gửi "GETHELLO" và đọc dữ liệu "HELLO" được máy chủ trả về)

Cảm ơn!

Trả lời

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

Tôi đã chỉnh sửa để làm cho nó hơi Rubyish và không sử dụng kích thước bộ đệm recc được mã hóa cứng. Hy vọng bạn không nhớ. –

+0

@NiklasB .: có vẻ tốt, cảm ơn. – maerics

+0

Tôi thử điều này nhưng đặt sock.gets không có dữ liệu trả về và chờ đợi vô thời hạn. Cảm ơn. – Jeremy

Các vấn đề liên quan