Create server

Hi all,

I am interested in using GServer but the server hangs after ~5-10
attempts
(per max connections to allow). Example code I used is from Peter
Coopers
book, Beginning Ruby From Novice to Professional:

http://www.springerlink.com/content/ph5611n3q3uu0619/

Is this normal?

Thanks.

Vince

Figured it out.

I need to sleep between successive calls to TCPSocket.new (see simple
example below):

require ‘socket’
for i in 0…20
session = TCPSocket.new(‘localhost’, ‘1234’)
session.puts “test”
dat = session.gets
p dat
session.close
sleep 0.5
end

Using ‘sleep 0’ cause the server to hang. Is there a way around this?

Vince

On Tue, 2008-04-15 at 03:16 +0900, Vince F. wrote:

p dat
session.close
sleep 0.5
end

Using ‘sleep 0’ cause the server to hang. Is there a way around this?

Perhaps then you should paste server code, rather than client code.

Solved my problem. Used select instead of threads to implement the
server.
Got the code from “The Ruby P.ming Language”. What a great book!

Vince

Sorry, here is the code:

require ‘gserver’
class HelloServer < GServer
def serve(io)
line = io.gets
io.puts("#{line.chomp}")
end
end
server = HelloServer.new(1234, ‘127.0.0.1’, 1)
server.audit = true
server.start
server.join

Hi,

I’m glad you solved your problem, I just had two comments:

  • “#{line.chomp}” is equivalent to line.chomp.
  • sleep 0 by definition sleeps forever:
    puts “A”
    sleep 0
    puts “B”

B is never written

Dan