Чтение данных из TCPSocket в Ruby - PullRequest
0 голосов
/ 28 марта 2019

Этот код отправляет xml-файл на сервер и ожидает получения результирующего xml-файла.

Я пытаюсь сделать это на машине с Windows через bash. Здесь установлена ​​среда полного рельса.

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-файл не приходит с сервера изэтот рубиновый код.

...