files off internet

For issues with communication ports, protocols, etc.
Post Reply
dooglius
Posts: 12
Joined: Oct 14, 2005 0:29

files off internet

Post by dooglius »

how do i get files off the web? I tried this:

Code: Select all

chdir "http://www.google.com"
open "index.html" for input as #1
if eof(1) then
    print "File not found"
else
    print "File found"
end if
close #1
sleep
But it doesn't work
VonGodric
Posts: 997
Joined: May 27, 2005 9:06
Location: London
Contact:

Post by VonGodric »

as much as I know of this you need to use winapi with mime types. or some networkg library -try SDL_net

these functions are only for locar hdd accessing
jofers
Posts: 1525
Joined: May 27, 2005 17:18

Post by jofers »

Doesn't quite work like that. The world wide web uses a protocol called "HTTP". To get that file, you have to:

connect to google.com at port 80
send "get /index.html HTTP/1.1 \n Host: google.com \n"
receive the response in chunks

To do this, you'll need a socket library such as, as VonGodric suggested, Winsock or SDL_net.
Sisophon2001
Posts: 1706
Joined: May 27, 2005 6:34
Location: Cambodia, Thailand, Lao, Ireland etc.
Contact:

Post by Sisophon2001 »

Hi:

I posted a function for downloading files from the internet using the WinAPI here:

http://www.freebasic.net/forum/viewtopic.php?t=1417

If this is all you want to do, then it may be of use to you. I only tested this on a single file, and I know next to nothing about internet protocols, but it looked neat and tidy, so I decided to try it for myself.

Garvan
hippy
Posts: 84
Joined: Nov 04, 2005 18:13
Location: UK

Post by hippy »

I've often thought just how nice it would be if files, web pages, email and even newsgroups could be read, uploaded and downloaded over the net that easily.

When reading, the OPEN downloads the file and could throw a File Not Found or other error and then reading could come from a temporary file. Writing would be to a temporary file and on CLOSE the upload would automatically happen, and throw errors then if it fails.

I think there is an argument to be able to overload or vector OPEN and CLOSE to allow such things to be done, and while I can see the reasoning for FB having moved from OPEN "COM1:..." to OPEN COM etc, I'd much prefer to see a language which allowed the file spec to determine what needs to be done.

The argument against is that massive runtime support has to be included in an executable which more often than not isn't needed. I'm sure there would be a way to allow the user to specify what runtime support was included at compile/link time and the availability of runtime support could be checked when OPEN etc is called with minimal overhead. That would give the best of both worlds.
jofers
Posts: 1525
Joined: May 27, 2005 17:18

Post by jofers »

You can write hooks for OPEN, so you could say, make a function that would make this:

Code: Select all

Open "INET:http://www.google.com" For binary As #1
Open an internet site. I tried hacking in an rtlib module for "OPEN TCP", but I cancel'd it because sending and receiving through FB's virtual file system would make the other end reset the connection all the time.

See the example file "openhook.bas" that comes with FB for a quick rundown on how to hook the OPEN command, if you wish to implement this yourself.
hippy
Posts: 84
Joined: Nov 04, 2005 18:13
Location: UK

Post by hippy »

jofers wrote:You can write hooks for OPEN
Many thanks. FB is just so powerful that there seems to be nothing it cannot do, and there is an awful lot of capability which I am not aware of !
anonymous1337
Posts: 5494
Joined: Sep 12, 2005 20:06
Location: California

Post by anonymous1337 »

Hippy: I was surprised too. Unlike most basic compilers, FB gives you the ability not commonly used in the basic world. The ability to play around with it's functions, and macroing and such helps too.

You can basically take what Fb has and manipulate it to your own advantage.
Post Reply