Forum: Ruby tcp multiple client / server... for each connection write

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D974b374bd09edcef9285ff7c4f59ea5?d=identicon&s=25 Bigmac Turdsplash (i8igmac)
on 2009-05-07 05:40
im putting together a server with multiple clients establishing a
connection... I need each client connected to retreave a string from the
server then the client's will process this string... string = gets, this
is how the server sends out the string but only the first client will
process this string...
I need the server to do something like this...

for each.connection.write(string)

does that make sense? im not sure how to accomplish this...

here is the source...

#server.rb
require 'socket'

server = TCPServer.new(1234)

loop do
  Thread.start(server.accept) do |connection|
        print connection
      str  = gets
        connection.write(str)# this needs to stay alive or actave for
each connection
    end
end
#---------------end of server-----------


#Client.rb
require 'socket'

while true
sleep 1
streamSock = TCPSocket.new( "127.0.0.1", 1234 )
  var1,var2,var3 = streamSock.recv( 100 ).chomp.split

  if var1 == 'example'
    print var2+"\n"
          print var3+"\n"


  elsif var1 == 'test'
    print var2+"\n"
    print var3+"\n"

  end
end
#-----------------end client-------------
Bec38d63650c8912b6ba9b557fb953b9?d=identicon&s=25 Roger Pack (rogerdpack)
on 2009-05-07 08:36
> for each.connection.write(string)
>

I'd probably make the server less multi-threaded, something like

all_cons = []
all_cons << server.accept
all_cons << server.accept # now it has two connections.

Also look into the use of select.
Cheers!
-=r
This topic is locked and can not be replied to.