从Ruby中的TCPSocket读取数据

时间:2019-03-28 14:09:16

标签: ruby-on-rails ruby websocket tcpsocket

此代码将xml文件发送到服务器,并等待获取结果xml文件。

我正在通过bash在Windows计算机上尝试此操作。在此设置了完整的rails环境。

require 'socket'

host = '13.74.255.195'
port = 10321
socket = TCPSocket.open(host, port)
  file = File.binread "/mnt/c/Windows/System32/workspace/preference/public/xml_files/20.xml"
  file.unpack('C*')
  socket.write file.bytes.to_a
  socket.write("\n")
  socket.write("ENDOFMESSAGE")
  socket.write("ENDOFMESSAGE")
  socket.flush
  socket.read
  socket.close

或(不同的数据读取方式)

while message = socket.gets
  puts message.chomp
end
socket.close

或(不同的数据读取方式)

def next_line_readable?(socket)
  readfds, writefds, exceptfds = select([socket], nil, nil, 0.1)
  p :r => readfds, :w => writefds, :e => exceptfds
  readfds 
end
while next_line_readable?(socket)
  puts socket.gets.chop
end
socket.close

卡住的结果xml文件不是来自该ruby代码的服务器。

0 个答案:

没有答案