1

こんにちは、バイナリ テキスト ファイルをクライアントからサーバーへ、およびサーバーからクライアントへ転送するコードを見てきました。しかし、Ruby を使用したソケット プログラミングで、クライアントからサーバーに mp3 形式または任意のオーディオ ファイルを転送できますか。

私は次のコードサーバー側を試しました

file = open('/pentest/windows/songs/temp.mp3', "rb") 
fileContent = file.read 
client.puts(fileContent)

クライアント側:

sock = TCPSocket.open(host, port) 
data = sock.read 
destFile = File.open('/tmp/temp.mp3', 'wb') 
destFile.print data 
destFile.close 

うまくいかなかった..提案してもらえますか

4

2 に答える 2

0

はい。とにかくmp3ファイルはバイナリ形式です。また、ソケットを介して転送できるデータの種類に制限はありません。

于 2012-09-22T07:04:33.483 に答える
0

これを試して、

クライアントで

        require 'socket'
        SIZE = 1024 * 1024 * 10
        TCPSocket.open('127.0.0.1', 12345) do |socket| 
          File.open('c:/file.mp3', 'rb') do |file|
              while chunk = file.read(SIZE)
                socket.write(chunk)
              end
          end
        end  

サーバー内

         require 'socket'
         require 'benchmark'
         SIZE = 1024 * 1024 * 10
         server =  TCPServer.new("127.0.0.1", 12345)
         puts "Server listening..."            
         client = server.accept       
         time = Benchmark.realtime do
           File.open('c:/file.mp3', 'w') do |file|
             while chunk = client.read(SIZE)
               file.write(chunk)
             end
         end
        end
于 2012-09-29T19:23:41.840 に答える