2008-11-19

Simplified 'bitBrave' progress

'bitBrave' code has been successfully ported to console version of the program. I feel much better now using traditional threads instead of wxWidgets timers.

What has to be done to complete this project:

  • Peer information exchange (most of classes already exist)
  • Information extraction to files
Here is how 'bitTorrent' looks now:

Comming soon...

2008-11-09

"bitBrave" simplification

Due to multiple problems with wxWidgets framework, the first version of "bitBrave" is now expected to be a console application. I have spent a lot of time trying to figure out how to solve those problems but the lack of wxWidgets documentation causes spending too much time on it...

The main problem that occured was unhandled exceptions. As I used timers instead of creating my own threads, sometimes code, executed in them, exceeded their intervals. Also, unhandled exceptions occured if timer was activated during dragging the main frame.

When unhandled exception occures, a message box appears allowing to ignore it, but if ignore option is chosen, it looks like some wxWidgets thread dies, because the main frame becomes not draggable and timer stops.

At first I had an idea to stop the timer for as long as timer code execution finishes and then restart it, but it failed as wxWidgets didn't allow me to do that. Also, I tried to catch the exception in many different ways, but it simply didn't work.

At this point, most of bit torrent code is already finished and tested. I still have to create a user interface and several small classes. The first downloadable version is expected to be finished in one to two weeks.

2008-11-06

"bitBrave" project

It looks like it becomes a silly tradition to suspend older projects to be able to work on the new ones... This time I am talking about a "bitBrave" project. This will be a simple freeware or perhaps even open source bit torrent client for Windows platform. I am coding with C++, using wxWidgets framework (with wxDev-C++ IDE).

This is how the main window looks like:

Simple, isn't it?

You just have to put a *.torrent file in a specified directory and the next time you start bitBrave, the download starts automatically. As soon as download finishes, downloaded files appear in another default directory. That is all you need to know to be able to use it!

There are no customisation options, nothing you can change. Just turn it on and wait for data... The main aim is to create as simple and primitive client as it is possible.

Valuable link for bit torrent developers: Bittorrent Protocol Specification

Wait for more info in the near future...