您好我见过将二进制文本文件从客户端传输到服务器以及从服务器传输到客户端的代码。但是我可以使用Ruby在socket编程中将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
它没有成功..你能否建议
答案 0 :(得分:0)
是。无论如何,mp3文件都是二进制格式。对于可以通过套接字传输的数据类型没有任何限制。
答案 1 :(得分: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