-- example:
-- include swget.e 
-- file_not_found=swget("menno.fmns.rug.nl","evenrss.xml","klad")

global function swget(sequence URL;file;fileto)
atom socket 
sequence data="" 
integer lengte,loaded=0,dataflag=0,maxload=50,klad,error=0
--   open een client socket naar URL port 80 .
     socket = open(URL&":80","c") 
     if socket<3
     then puts(1,"Error cann't Open socket\n")
          abort(2)
     end if
--   stuur vraag om de file op te halen          
     puts(socket,"GET http://"&URL&'/'&file&" HTTP/1.0\r\n\r\n") 
     data=gets(socket)
     while sequence(data) do
     if dataflag
     then printf(klad,"%s",{data}) 
          if not error
          then loaded+=length(data)
               if loaded>maxload
               then puts(1,'.')
                    loaded=0
               end if     
          end if     
     else if length(data)>1
          then --printf(1,"%s",{data}) -- response header
               lengte=match("HTTP/1.1 404",data)
               if lengte then error = 1 end if
               lengte=match("length:",lower(data))
               if lengte
               then lengte = value(data[lengte+7..])
                    lengte=lengte[2]
                    maxload=lengte/maxload
               end if
          else dataflag=1 
               if error 
               then puts(1,"Error file not found on server ! ")
               else puts(1,"\nLoading .")
               end if       
               klad=open(fileto,"w")
          end if
     end if     
     data=gets(socket)
     end while 
     close(socket)
     close(klad)
     return error
end function