Я хочу отправить изображение с одного компьютера на другой через сокет TCP в Ruby, но компьютер, который должен загрузить его, не будет читать файл в сокете, не закрывая сокет со стороны отправителя.
Этот код загружает файл
puts 'OPENING FILE...'
file = open(fName,'rb')
puts 'DONE\nREADING FILE...'
fContent = file.read
puts 'DONE'
master.puts 1
msRes = master.gets.chomp.to_i
puts msRes
puts 'UPLOADING FILE'
master.puts fContent
master.puts 'done'
master.flush
puts 'DONE'
Этот код загружает файл
slave = $slave
puts 'ENTER FILE NAME TO DOWNLOAD'
fName = gets.chomp
slave.puts("DOWNLOAD")
slave.gets
puts("SLAVE READY")
slave.puts(fName)
response = slave.gets.chomp.to_i
puts response
if response == 1
slave.puts 1
puts "DOWNLOADING..."
data = slave.read
puts "DOWNLOADED WRITING"
destFile = File.new(fName,'wb')
destFile.write data
destFile.close
else
puts 'NON-EXISTANT FILE'
end
Все отлично работает, если я добавлю master.close . Но я хочу избежать, если это возможно, закрытия соединения и повторного подключения.