Is a networking software like Bittorrent, requires prior knowledge of lower chapter from HLA; I'm not interested in Boolean Algebraic now. My time is running and I don't see much time to waste, I could learn it later.

Bittorrent is a software that uses networking and there is a server, they share the bandwidth uploaded. If there're more uploaders you can download it faster, you download and upload.
Posted on 2005-07-27 22:17:01 by Xor Stance

Is a networking software like Bittorrent, requires prior knowledge of lower chapter from HLA; I'm not interested in Boolean Algebraic now. My time is running and I don't see much time to waste, I could learn it later.

Bittorrent is a software that uses networking and there is a server, they share the bandwidth uploaded. If there're more uploaders you can download it faster, you download and upload.


If I understand your question correctly, it really depends on how you want to approach it. You can use more high-level abstractions that Masm32 offers, or you can try to manipulate every bit yourself. Considering that you would probably wish to use drivers provided by the operating system, I suggest using those abstractions (i.e. library calls) and developing a good user interface. You shouldn't have to worry about too low-level stuff unless you have some algorithms that need good optimization.
Posted on 2005-07-28 16:25:09 by SpooK

Is a networking software like Bittorrent, requires prior knowledge of lower chapter from HLA; I'm not interested in Boolean Algebraic now. My time is running and I don't see much time to waste, I could learn it later.

Bittorrent is a software that uses networking and there is a server, they share the bandwidth uploaded. If there're more uploaders you can download it faster, you download and upload.


Well, I've never used bit torrent, but largely what it is is a high-level protocol that allows you to extract packets of data from different sources in a concurrent fashion. It really isn't low-level (in the sense of boolean algebra) at all. And the speed you get from bit torrent is *not* do to efficient coding of the application (though it may very well be efficient), but from the fact that it is a highly distributed data source. 100 servers running slowly do a great job of getting data to a single client; better than a fast server in most cases. The limiting factor is almost always the wire (that is, the network), not the CPU's speed or the efficiency of the server application.
Cheers,
Randy Hyde
Posted on 2005-07-28 21:48:59 by rhyde
For a thing like bittorrent, the language you code in doesn't matter too much (apart from a few thing, like the hashing routine). What really matters is how well you interface with your operating system.

You could code everything in assembly language, but if you use WM_* socket operations, or a blocking thread per client connection, performance will die. Any language supporting an EVENT model + WaitForMultipleObjects, or I/O completion ports, should do pretty well.

A language with good text parsing abilities will be a lot easier to create a torrent application in, and will be less error prone. Also, a dynamically typed language (especially one with maps, hash or not) can help a lot.

That's it for 'performance' - now, what was your question? :)

EDIT:

The limiting factor is almost always the wire (that is, the network), not the CPU's speed or the efficiency of the server application.

Yes and not... have a look at grabbing 5+ torrents with a totalt of some 5000+ peers. BitComet, which is pretty efficient, has sporadic loads of ~10% CPU time on my AMD64 3500+. I guess it could have more efficient socket handling :)
Posted on 2005-07-28 22:05:07 by f0dder
Oh well, thanks a lot. My question was pretty good answered by the three of you I thought it was because of the CPU usage and software quality. I use Bitcomet too, I usually download things faster and its stable cmp to bittorrent. Sometimes with bittorrent, you get no downloads at all, bitcomet efficiently uses a faster search.
Sorry Hyde, I forgot to mention bitcomet.

I would like to build it, for the purpose that I use it so much to download things over the net.

Posted on 2005-07-28 23:41:52 by Xor Stance