Generic TCP/IP Server platform

Maximus

Well-Known Member
Joined
Apr 13, 2004
Messages
209
Reaction score
0
Location
.
Hi guys,

I am fairly experienced in multi-threaded development within multiple programming languages. I find myself constantly re-inventing the wheel when it comes to server development though and I've just about had enough of it. I often work in the telemetry field where multiple devices communicate to either some desktop application or server. Many of these devices still uses propriety protocols (both binary and text) to communicate to the software. With bolt-on TCP/IP modules that can be integrated into existing circuits more and more of these devices now becomes TCP/IP compatible but still uses the old propriety protocols.

My question is this: are you aware of any generic TCP/IP server platforms/frameworks that one can use to construct your own protocol handler that can then eventually interface with these devices over TCP? I don't care which programming language it is as long as it is multi-platform capable. If it is not, then it should rather run on linux than on Windows. I've looked at a number of "Application Servers" but many of these seems far to complex and heavy for what I need and also seems to support only protocols designed for web applications.

If you reckon that something like JBoss could be suitable for what I'm looking for then so be it, I would take another look at it. There are a number of small sourceforge projects which on the surface looks like it could do the trick but many of them became stagnant over the years as larger more complex Application Servers started taking over.

Your input would be greatly appreciated!
 
Just some feedback: I am looking at mod_perl for apache and it seems that one might actually be able to build non-HTTP applications on top of apache (which we all know rocks!).
 
Have you considered .NET? Since the Mono-Project has basically waxed most of the 2.0 Framework it is essentially "multi-platform", and socket handling in .NET is a dream so writing a propriety protocol over TCP/IP in .NET is not to difficult at all (I've done it myself).

Check out a project on SourceForge called SharpPCap, which is a .NET multiplatform implimentation of WinPCap, it wont be the answer you're looking for but they do use the Mono project and you can see how well it works?

My question is this: are you aware of any generic TCP/IP server platforms/frameworks that one can use to construct your own protocol handler that can then eventually interface with these devices over TCP? I don't care which programming language it is as long as it is multi-platform.
.

Apart from using .NET + Mono I'd have to say if you want any "serious" power in your application you'd have to go the Java route...
 
I don't get what you are on about Maximus.

Each of the existing different TCP/IP based protocols have different authentication requirements and different error handling procedures, that are specific to the intended use of the protocol.

Now you want to encapsulate them all into a generic one-for-all translator, thereby doing away with the existing specialisation.

It seems like a heck of a lot of hard work, just to get rid of one hour of coding per "interface".
 
Have you considered .NET?

Thanks for your response dequadin, I'm concerned that .NET based solutions will make my redistribution on Linux platforms too much of a burden. I also need something that I know have been properly "run-in" over a number of years. Stability is one of the most important aspects.

I don't get what you are on about Maximus.
Sorry, my explanation over what I require was perhaps not too clear. In as few words as possible, I'm looking for a networking platform/engine that is capable of the following:

1) Non-blocking, asynchronous networking.
2) Multi-protocol support, both standard and non-standard.
3) Stability a big priority.
4) Speed a secondary priority.
5) It must be capable of running on Linux, multiplatform capability would be a bonus.
6) Ease of redistribution is also an important aspect.
7) Scalability also a requirement.

Maybe have a look at Twisted (Python) ...
... not the easiest to to get started with, but pretty powerfull.

http://twistedmatrix.com/

Thank you chopsuey, I already came upon this gem and I am already busy playing around with it. This engine looks good enough to be worth learning Python for.
 
Maximus said:
Thanks for your response dequadin, I'm concerned that .NET based solutions will make my redistribution on Linux platforms too much of a burden. I also need something that I know have been properly "run-in" over a number of years. Stability is one of the most important aspects.
I've never worked with the Mono project so I can't comment on it's reliability. However I have done a fair bit of .NET socket programming (Windows) both sync & async writing customised protocols that bolt onto TCP/IP and I must admit the framework is brilliant in this regard.

Novell is now also involved in Mono so I'm sure it'll be around for a while, but I hear what you're saying about "tried-and-tested" and possible config issues.

chopsuey said:
Maybe have a look at Twisted (Python) ...
... not the easiest to to get started with, but pretty powerfull.

http://twistedmatrix.com
Had a quick read through the FAQ and this looks like a brilliant framework, as Maximus said might be worth learning Python for, I'm particularity interested in the web server.
I must admin I never considered Python for this question but I think I've changed my mind over JAVA being the best multiplatform solution for this problem...
 
Had a quick read through the FAQ and this looks like a brilliant framework, as Maximus said might be worth learning Python for, I'm particularity interested in the web server.
I must admin I never considered Python for this question but I think I've changed my mind over JAVA being the best multiplatform solution for this problem...

Python is truly a strange language but seeing some python code used in context within Twisted helps a lot. I downloaded Python 2.6 together with twisted and manage to run through some of their examples within minutes. It certainly looks very promising so far.
 
Python is truly a strange language

Strange ? The only thing I found strange about Python when starting out, is that some problems seemed "to easy" to solve, and therefore thought it was a toy language ... I was so wrong ;-)

Python is the easy part, Twisted takes some time.

Want to try to solve your problem with a real strange (and maybe powerful) language ?
Try Erlang: http://www.erlang.org/

don't have any experience with Erlang..... yet :o
 
Strange ? The only thing I found strange about Python when starting out, is that some problems seemed "to easy" to solve, and therefore thought it was a toy language ... I was so wrong ;-)

Hehe, strange, but often ingenious. For example, scanning through a python book I come across this statement:
Code:
endings = ['st', 'nd', 'rd'] + 17 * ['th'] \
+ ['st', 'nd', 'rd'] + 7 * ['th'] \
+ ['st']

And I go: wait, what!? Then I try it out in the interpreter prompt and I go.... ohhhhhhhhhh, that's kinda clever :)

Both Perl and Erlang makes my eyes water, but I guess it's because I'm so ingrained in Delphi, C, Java and PHP style syntax. One tend to forget that there are languages which tackles problems a bit differently.
 
Top
Sign up to the MyBroadband newsletter
X