Отправка файла без закрытия сокета в ruby - PullRequest
0 голосов
/ 08 сентября 2018

Я хочу отправить изображение с одного компьютера на другой через сокет 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 . Но я хочу избежать, если это возможно, закрытия соединения и повторного подключения.

...