不是使用每連接一線程的技術,而是使用多路復用技術。
作了一個分配算法。第一個HTTP Request返回取得ContentLength之后,如果使用多個連接下載,則需要一個分配算法,分配每個Request所對應的Range。分配的部分可能是一個連續的塊,例如bytes=100-999,也可能是一些碎塊,例如bytes=500-600,700-800,850-999。為此,我做了一個數據結構,其提供的功能類似java.util.BitSet,也支持and、or等操作。
實現了對ContentType為multipart/bytes的HTTP Message Body的解釋。如果發送HTTP Request,Range為多個不連續的部分,返回的HTTP Message,就會是multipart,每個part都會包括一個Head和一個Body,需要一個解析器。
下一步就是把HTTP下載加入P2P下載中!