Multiple Port Listening (MPL)


Overview

Multiple Port Listening is the name given to an extension I've made to the LambdaMOO server. The concept is to allow arbitrary objects to listen on specified ports above 1024 and deal with incoming connections. The reason for the arbitrary limit is that I work on BSD based OS's and ports below 1024 are reserved for system services. I have not made the modifications for LambdaMOO to support MPL with non-BSD networked LambdaMOO.

The reason I hacked the LambdaMOO server to be able to have arbitrary objects listen on ports stems from a discussion that I had with Jay Carlson in our apartment one night about HTTP and MOO. We were arguing about whether it was better to have separate connections to the server for different protocols/purposes, rather than have all the connections multiplex over the same connection. I'm in favor of the multiple connections, multiple data streams approach. Jay, being involved in the development of the MOO Control Protocol (MCP), has good reasons for its existance.

One of the original goals was to have JHM not have to listen for HTTP requests on the main port, parse out things that started with 'get' and etc etc etc for HTTP. This, I hope is obvious, would eventually happen with every protocol that people wanted to use with standard clients. Instead of having to do that, why not just put some object that's designed to deal with HTTP, on some port, and have standard web clients connect to a port, and get HTML? Seemed easy enough.

Other things could be made to work this way like InterMOO Mail, via SMTP/POP, InterMOO Communication with specialized protocols, etc.

That's MPL, to get a copy of the latest distribution, grab the file mpl-1.3.tar.gz. This has a readme and a faq, which have similar information in them. If you have questions feel free to send me mail.

This software is reasonably stable, however I don't claim it's bug-free. If you have problems with it please send me mail and we can work out the problem. Then I can update the patches so the (alleged) bug doesn't bother others.

ivan@ccs.neu.edu