« October 2009 | November 2009 Archives | December 2009 »


It's been a bit of a week for bugs. First I had a bug report for the really rather old CodeProject socket server COM object. This allows people using VB to create a socket server that uses the free version of The Server Framework. It works well, for what it is, and has been the basis for several custom objects that various clients have needed over the years. The bug involves the 'read string' functionality and either the ATL headers (specifically the narrow to wide character conversion macros) have changed since the code was originally written in 2002 in VC 6.0 or…

Talk to the bear

In the great tradition of explaining your problem to someone else as a way of fixing it yourself without their help... I've nailed the rotating file log 16010101 bug! The problem was to do with the fact that when there was a new log ready for use and a log message switched it to be the active log it also set the 'next log time' to zero. If a time change notification came along just after this, whilst the 'next log time' was zero then it created a new log due to a bug in the time change handler; a…

Latest release of licensed socket server code: 6.1.1

The latest release of The Server Framework is now available. This release includes the following changes. Note that this is mainly a bug fix release. The following changes were made to the libraries. Admin Library - 6.1.1 New build configuration options. All of these are enabled by defining the option to 1 in Config.h and disabled by defining them to 0; the default state if you do not do anything in Config.h is shown for each option: JETBYTE_USE_CAPTURE_STACK_BACK_TRACE - enabled by default. Define to 0 to prevent the use of CaptureStackBackTrace() when building for platforms later than Windows XP. Normally we assume…

Stream compression

Compressing TCP (and reliable UDP) streams is one of the things that often comes up in discussion with clients and I've helped several people implement stream compression using the TCP stream filtering API that's part of The Server Framework. The filtering API is also used to provide SSL security over a stream and for things like asynchronous read timeouts, read sequencing, flow control and automatic reconnects. It's a flexible API and the fact that it's pluggable means that you can pick and choose from the various filters that form part of the framework and add whichever combination you fancy. I'm just finishing…
The licensed version of my freely available I/O Completion Port based, high performance, Windows networking framework provides a whole host of features that the free code doesn't; aside from performance improvements, bug fixes and an active support and development process. These features make writing highly scalable TCP and UDP clients and servers very easy and solve many of the problems that you would come across if you were to start from scratch, either with the Winsock API directly or using something such as boost::asio. Whilst my client/server framework deliberately does not offer cross platform functionality it targets the writing of…

.Net 4.0 Hosting (again)

As I mentioned a while back the CLR Hosting API has changed with .Net 4.0. The new API allows you much more flexibility in loading CLR runtimes and also allows you to load and run multiple different runtimes in a single process. Whilst this is useful if you need to control which runtime runs your code and indispensable if you need to host code that really requires different versions of the runtime and can't all run in the "latest" runtime, I think the times when a user of my CLRHosting libraries will actually need this functionality will be few and…

Writing a custom Wireshark dissector plugin

I've been spending a little time recently writing a custom Wireshark dissector plugin for the UDT protocol. This didn't prove to be that difficult once I got over the initial problem of actually getting the Wireshark source to build with VS2008. My problem was that I'd found a CodeProject article which is now slightly out of date and which I followed too closely - setting up the Platform SDK version that the article stated was required. In fact the source code has moved on since then and now needs a later version. Eventually I switched to using the latest Platform…
« October 2009 | November 2009 Archives | December 2009 »

About this Archive

This page is an archive of entries from November 2009 listed from newest to oldest.

October 2009 is the previous archive.

December 2009 is the next archive.

I usually write about C++ development on Windows platforms, but I often ramble on about other less technical stuff...

Find recent content on the main index or look in the archives to find all content.

I have other blogs...

Subscribe to feed The Server Framework - high performance server development
Subscribe to feed Lock Explorer - deadlock detection and multi-threaded performance tools
Subscribe to feed l'Hexapod - embedded electronics and robotics
Subscribe to feed MegèveSki - skiing