龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

java网络蚂蚁的制作流程

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
Java网络蚂蚁的制作流程 “网络蚂蚁”、Falshget 等许多多线程下载软件都是网友的必备工具,利用这些工具可以快速从服务器上下载比较大的文件,这些工具的工作特性是把服务器端的

  Java网络蚂蚁的制作流程
  
  
  “网络蚂蚁”、Falshget 等许多多线程下载软件都是网友的必备工具,利用这些工具可以快速从服务器上下载比较大的文件,这些工具的工作特性是把服务器端的文件分成几个段,每个段分别、同时进行下载。编写这类程序,第一、必须对HTTP协议有较为充分的了解;第二、有效使用多线程编程手段在软件上实现。
  
  HTTP 协议的简介
  
  HTTP协议是一种超文本传输协议(Hypertext Transfer Protocol),工作于网络应用层,自1990年起广泛应用于WWW 的全球信息服务,HTTP协议的具体说明可以在网上查阅RFC2518、RFC2616等文档。
  
  HTTP状态码
  
  HTTP状态码格式是 HTTP/版本信息的数字表示。状态码例子如下:
  
  HTTP/1.0 200 OK // 表示服务器支持HTTP/1.0 协议,成功
  
  HTTP/1.1 200 OK // 表示服务器支持HTTP/1.1 协议,成功
  
  HTTP/1.0 404 Not Found // 表示服务器支持HTTP/1.0 协议,访问文件没有找到
  
  在程序中间,假如读到“HTTP/1.1 200 OK”这样的字符串,表明欲下载文件存在、该服务器支持断点续传,可以使用多线程下载。假如读到“HTTP/1.0 200 OK”这样的字符串,表明欲下载文件存在、但该服务器不支持断点续传,只可以使用单线程下载。
  
  
  读取重要的响应标题,获得要下载文档的文件长度
  
  假如HTTP状态码表明访问成功,服务器会回送一些标题行,我们最关注的是Content-Length 这一行,比如,假如服务器回送“Content-Length:1000”,表明请求文件的长度是1000字节,所以读取这一行信息,可以得到文件的长度信息:
  
  例如:GET /down.zip HTTP/1.1
  Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-
  Excel, application/msWord, application/vnd.ms-Powerpoint, */*
  Accept-Language: zh-cn
  Accept-Encoding: gzip, deflate
  User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
  Connection: Keep-Alive
  
  200
  Content-Length=106786028
  Accept-Ranges=bytes
  Date=Mon, 30 Apr 2001 12:56:11 GMT
  ETag=W/"02ca57e173c11:95b"
  Content-Type=application/octet-stream
  Server=Microsoft-IIS/5.0
  Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT
  所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给
  Web服务器的时候要多加一条信息--从哪里开始。
  下面是用自己编的一个"浏览器"来传递请求信息给Web服务器,要求从2000070字节开始。
  GET /down.zip HTTP/1.0
  User-Agent: NetFox
  RANGE: bytes=2000070-
  Accept: text/Html, image/gif, image/jpeg, *; q=.2, */*; q=.2
  
  
  仔细看一下就会发现多了一行RANGE: bytes=2000070-
  这一行的意思就是告诉服务器down.zip这个文件从2000070字节开始传,前面的字节不用传了。
  服务器收到这个请求以后,返回的信息如下:
  206
  Content-Length=106786028
  Content-Range=bytes 2000070-106786027/106786028
  Date=Mon, 30 Apr 2001 12:55:20 GMT
  ETag=W/"02ca57e173c11:95b"
  Content-Type=application/octet-stream
  Server=Microsoft-IIS/5.0
  Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT
  
  
  和前面服务器返回的信息比较一下,就会发现增加了一行:
  Content-Range=bytes 2000070-106786027/106786028
  返回的代码也改为206了,而不再是200了。
  
精彩图集

赞助商链接