2014-01-12 9 views
1

У меня есть сетевой сервер java и клиент сети Ruby, взаимодействующий через сокеты Я использую TCPSocket в Ruby Клиент запрашивает определенный wav-файл с сервера, на который я могу отправлять запросы, и могу получить текстовый поток , но я не знаю, как получить файл WAV через сокеты и написать егоПолучите wav-файл из потока байтов в Ruby

 require 'socket' 
     require 'timeout' 
     require 'wavefile' 
     include WaveFile 

    def recvwav 
     data_socket=TCPSocket.open(hostname, port) 
     data_socket.puts text 
     begin 
     writer = Writer.new("my_file.wav", Format.new(:mono, :pcm_16, 44100)) 
     timeout(10) do 
      writer.write(data_socket.recv(100)) 
     end 
     rescue Timeout::Error 
     puts "Timed out!" 
     end 
    end 
+1

милая так же, как вы получаете текстовый поток, так это то, как вы получаете двоичный поток, делитесь некоторым кодом, и люди могут вам помочь – bbozo

+0

Я добавляю свой код к вопросу – Mostafa

ответ

1

, чтобы моя проблема решена, но в письменном виде файла непосредственно это мой код

data_socket=TCPSocket.open(hostname, port) 
    #send your request 

    somefile = File.open("file_name.wav", "wb") 
    somefile.write(data_socket.readlines.join) 
    somefile.close 
Смежные вопросы