Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > basic WEBrick question

Reply
Thread Tools

basic WEBrick question

 
 
Mark Volkmann
Guest
Posts: n/a
 
      01-20-2006
I have the following basic code. When I run this it says "TCPServer
Error: Address already in use - bind(2)". I can hit Ctrl-C to kill it,
change the port to anything and rerun it and I still get that error
message. I must be missing something really basic.

require 'webrick'
include WEBrick

class AddServlet < HTTPServlet::AbstractServlet
def do_GET(req, res)
n1 =3D req.query['n1'].to_i
n2 =3D req.query['n2'].to_i

res['Content-Type'] =3D 'text/html'
res.body =3D "The sum of #{n1} and #{n2} is #{n1 + n2}."
end
end

server =3D HTTPServer.new(ort=3D>2000)
trap('INT') { server.shutdown }
trap('TERM') { server.shutdown }
server.mount("/add", AddServlet)
server.start

--
R. Mark Volkmann
Partner, Object Computing, Inc.


 
Reply With Quote
 
 
 
 
Caleb Tennis
Guest
Posts: n/a
 
      01-20-2006
On Friday 20 January 2006 10:59, Mark Volkmann wrote:
> I have the following basic code. When I run this it says "TCPServer
> Error: Address already in use - bind(2)". I can hit Ctrl-C to kill it,
> change the port to anything and rerun it and I still get that error
> message. I must be missing something really basic.


It works here on Linux. What's your platform, and are you sure you don't have
something else already running on port 2000 ?


 
Reply With Quote
 
 
 
 
Mark Volkmann
Guest
Posts: n/a
 
      01-20-2006
On 1/20/06, Caleb Tennis <(E-Mail Removed)> wrote:
> On Friday 20 January 2006 10:59, Mark Volkmann wrote:
> > I have the following basic code. When I run this it says "TCPServer
> > Error: Address already in use - bind(2)". I can hit Ctrl-C to kill it,
> > change the port to anything and rerun it and I still get that error
> > message. I must be missing something really basic.

>
> It works here on Linux.


Thanks for checking it!

> What's your platform


I've been able to duplicate this under both Windows XP and Fedora Core 4 Li=
nux.

> 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?

--
R. Mark Volkmann
Partner, Object Computing, Inc.


 
Reply With Quote
 
Caleb Tennis
Guest
Posts: n/a
 
      01-20-2006

> 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.


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.



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
WEBrick: Has anyone used WEBrick::Session? Lloyd Zusman Ruby 2 02-21-2013 06:49 PM
WEBrick::Daemon and WEBrick Aaron Smith Ruby 2 03-18-2007 03:47 AM
Basic authentication with WEBrick? vasudevram Ruby 3 09-10-2006 04:29 PM
Webrick and Basic Auth jim@freeze.org Ruby 3 01-09-2005 12:33 AM
Webrick and CGI question Mark Wilson Ruby 1 08-27-2003 05:25 AM



Advertisments