发送文件而不关闭红宝石中的socker

时间:2018-09-08 14:48:10

标签: ruby sockets io

我想通过Ruby中的TCP套接字将图片从一台PC发送到另一台,但是要下载它的PC在不关闭发送方侧面的套接字的情况下不会读取套接字中的文件。

此代码上传了文件

    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 ,一切都会很好。但是,如果可能的话,我想避免关闭连接并再次连接。

0 个答案:

没有答案