require 'webrick'
include WEBrick
class AddServlet < HTTPServlet::AbstractServlet
def do_GET(req, res)
n1 = req.query['n1'].to_i
n2 = req.query['n2'].to_i
res['Content-Type'] = 'text/html'
res.body = "The sum of #{n1} and #{n2} is #{n1 + n2}."
end
end
server = HTTPServer.new(:Port=>2000)
trap('INT') { server.shutdown }
trap('TERM') { server.shutdown }
server.mount("/add", AddServlet)
server.start
--
R. Mark Volkmann
Partner, Object Computing, Inc.
It works here on Linux. What's your platform, and are you sure you don't have
something else already running on port 2000 ?
Thanks for checking it!
> What's your platform
I've been able to duplicate this under both Windows XP and Fedora Core 4 Linux.
> and are you sure you don't have
> something else already running on port 2000 ?
I tried again a while ago and it's now working under Windows. Makes me
think that for some reasons when I killed the server it didn't
immediately free up the port. However, under Linux it's still saying
the port is in use.
Is there an easy way I can ask Linux for a list of all the ports in use?
There's usually a setting you can use to tell the OS to allow you to reuse the
port once it's closed. I don't have my Pickaxe in front of me, but I do have
my camel book and in Perl there's a "Reuse" parameter that gets passed to new
TCP Sockets to be able to reuse the port. I'm guessing Webrick has something
similiar.
> Is there an easy way I can ask Linux for a list of all the ports in use?
"netstat -at" for TCP ports.