I've been on it again. I don't know why precisely I torture myself with network programming. There's a pleathora of toolkits for precisely that readily avaiable.
Generally I do scratch-writes of existing libraries only 1/4 until I grasp the concept fully and convert to an existing library.
The things I've had direct exposure to where asyncore, medusa, twisted, xmlrpc, tcpserver and of course socket. I think there's far more, but these are the ones that notably stick around my internal memory so they might deserve the mention, honorary at least.
I can' really reason that any of those above would be insufficient or somehow lacking, they just do not really apeal to me.
So, I'm on the fourth ( or was it the fifth ) rewrite of my network library. Somewhere at the second rewrite I decided asynchronous can't be done properly, and sacrified it for threads. Meanwhile having aquired more network-karma, I actually reversed my opinion, and think asynchronous can in fact be done properly, and it will be a big merrit in the end.
Of course I reinvent all sorts of wheels in the process, including but not limited to rpc mechanisms, message transport protocols and asynchronous messaging.
I still don't know really why I do it. But there's only two possible explanations. Either all existing stuff sucks beyond comic relief, or I've still not grasped the fundamentals of network programming, even after years of exposure.
I fear the latter is far more likely, but duh... can that really be?