#! /usr/bin/ruby
# echo.rb
# 22:02 24/11/2002
#
# This is a simple echo server for testing purpose.

require 'socket'

# ouverture d'un socket serveur
# sur le port 2000
echoServer = TCPServer.open(2000)
serverInfo = echoServer.addr
printf("echo server running on port %s on IP %s...\n", serverInfo[1], serverInfo[2])

# boucle infinie
while true
  # on démarre un nouveau thread pour
  # recevoir les connexions
  Thread.start(echoServer.accept) do |client|
    # tant que nous recevons des données du client
    while client.gets
      # nous lui renvoyons ces données
      # (variable implicite $_ en provenance de gets())
      client.write($_)
    end
    # on ferme la connexion
    client.close
  end
end

# end of echo.rb
