« July 2009 | August 2009 Archives | September 2009 »

Custom client/server request/response protocols

| 1 Comment
Quite often my customers use The Server Framework for both ends of their communication channels. The Server Framework has fully supported developing clients as well as servers for a long time now and although many of my customers build either servers or clients with the framework some build both. One of the things that often comes up in discussions with these customers is how to develop a custom request/response protocol for their servers and clients to communicate with. Now, of course, there's often a perfectly good existing, standard, protocol that they can use. But sometimes, for whatever reason, there isn't, and I sketch out…

Tracking invocations

The simple client/server request/response protocol that I'm currently harvesting uses the concept of an 'invocation' to tie a request to a response. An id is generated on the client and placed in the request header. The server simply copies the id from the request header to the response header and the client can then match responses to requests. This works nicely but the implementation has evolved with the protocol. The first version used a 4 byte invocation id, allocated an instance of an invocation data class and stored the allocation address of the object as the invocation id. This worked…

Testing blocking calls

I'm developing the simple client server protocol code that I'm harvesting in a test driven manner. Although the code exists, as such, and I'm harvesting it rather than inventing it from scratch the harvesting is taking the "best" ideas from several similar implementations to create the version that will form part of the framework's example code. As such I'm treating this just like a new development and, mostly, writing my tests first. This has worked well, as usual, and has allowed me to mercilessly refactor whilst I go as I decide to incorporate features from different versions of the protocol…

Downloading Windows 7

Since I complained about how the Microsoft File Transfer Manager sucked when I was downloading the Windows 7 Beta back in March I thought I should be balanced and point out that last night I kicked off a download of Windows 7 and the x86 and x64 SDKs and this morning they were all present and correct and that I had none of the problems that had plagued me last time. I was just thinking that perhaps Microsoft had beefed up their connectivity prior to the launch on MSDN subscriber downloads when I got a comment from Nigel to my…
Back in October 2005 some of my clients started to complain that the latest version of the Platform SDK (the April 2005 version) broke their builds. The culprit was uuid.lib which had been built with debugging information that the VC6 linker didn't understand and which caused a link failure. The end result was that the last version of the Platform SDK that worked with VC6 was the February 2003 version. This all seemed quite unnecessary to me at the time; as if the latest Platform SDK was deliberately unusable for VC6 which had (in September 2005) just become unsupported. Well,…

Using Wireshark to debug UDP communication issues

A customer of mine has been having some problems with communication between a UDP server and their load test client. The UDP server implements the ENet protocol which provides for reliable data transfer over UDP. Their problem was manifesting as the client not getting some ENet level ACKs for some reliable data. The Wireshark log from the client machine showed the client resending the data when the ENet retransmission timeout expired and also showed that the ACKs for these packets never arrived. The communications continued normally until the client disconnected due to a final timeout for the missing ACK. A…

Excel 2010 XLL SDK

I'm currently looking at the Excel 2010 XLL SDK which is part of the Office 2010 Technical Preview. I've already built and tested my managed XLL system with Excel 2010 on x86 but I needed the new XLL SDK to be able to build for the x64 version of Excel. The SDK doesn't ship as part of the main Office 2010 installation, you have to ask for it. So far things look reasonably good in x86 mode. The code that I have been developing worked fine in Excel 2010 without needing the new SDK at all; which is how it…
« July 2009 | August 2009 Archives | September 2009 »

About this Archive

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

July 2009 is the previous archive.

September 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