Download binary file

Hi everyone, I'm trying to download a binary file (an mp3) from a given URL, at the moment I've found two possible solutions: 1) Use the Network.Socket library from ghc to get the file. The problem with this is that I'll have to deal with the HTTP protocol (done), and read the Handle in binary mode however I don't understand how to do this, in particular how to deal with the buffer (Prt?). 2) Use a system program like wget in linux systems. But I don't know how to call a system command from haskell, and besides I wan't my program to be portable at least between windows and linux. Any sugestions? Sorry for my newbie question. Thanks. -- Jorge E. Guerra D. Departamento de Computación y Tecnología de la Información Universidad Simón Bolívar

Using buffers to read and write from a Handle is pretty easy. You can
use 'allocaBytes' (from Foreign.Marshal.Alloc) to allocate the buffer
size you want, and a Ptr to that gets passed to the IO computation
that you give to allocaBytes as an argument. You can see a simplistic
example of network IO with buffers here:
http://shootout.alioth.debian.org/benchmark.php?test=tcprequest&lang=ghc&id=2
In particular, the last function, 'requestLoop', uses a buffer to read
a specific number of bytes from a Handle on each iteration.
On 11/14/05, Jorge Guerra
Hi everyone,
I'm trying to download a binary file (an mp3) from a given URL, at the moment I've found two possible solutions:
1) Use the Network.Socket library from ghc to get the file. The problem with this is that I'll have to deal with the HTTP protocol (done), and read the Handle in binary mode however I don't understand how to do this, in particular how to deal with the buffer (Prt?).
2) Use a system program like wget in linux systems. But I don't know how to call a system command from haskell, and besides I wan't my program to be portable at least between windows and linux.
Any sugestions?
Sorry for my newbie question.
Thanks.
-- Jorge E. Guerra D. Departamento de Computación y Tecnología de la Información Universidad Simón Bolívar
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (2)
-
Jorge Guerra
-
Kurt Hutchinson