From: andreas.alin@... Date: 2006-08-19T22:55:21+09:00 Subject: Client/server with threads Yow! I'm trying to make a script that will act as a server (server 1), and when a connection to the server server 1 is made, it will start a thread that will connect to another server (server 2), and it will keep the connection to server 2, even if the client disconnects. The thing is that, as I've tried, my client/server will not connect to another server, and if it does, the client can not disconnect. Any ideas? Thanks, Andreas ---------------------- require 'socket' class Session < Thread def initalize(session_id) super @session_id = session_id end def session_id @session_id end def send_message( message # This method should send a message to # server 2 puts message end end threads = [] server = TCPServer.new("0.0.0.0", 12121) while (session = server.accept) session_id, message = session.gets.split(";", 2) t = threads.map {|t| t if t["session_id"] == session_id }.delete_if {|s| s == nil}.first puts t if t puts "Found thread with existing session_id: #{ session_id }" t.send :send_message, message else threads << Session.new(session) do |t| Thread.current["session_id"] = session_id puts "Creating thread for #{ session_id }" end end session.close end