Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Ruby][TCPServer] Un Thread par connexion ?

    20 novembre 2006 à 1:56:02

    Salut !
    je fait un projet de serveur MUD (via telnet) entierement ecrit en ruby ,
    mais je ne sait pas comment faire pour avoir un thread par connexion histoire de pas tout bloquer , pour le moment j'ai fait comme ceci :
    require 'socket'

    puts "Lecture du fichier de configuration..."
    require 'conf.rb'
    require "lib/Logger.rb"
    require "lib/Welcome.rb"
    require "lib/Com.rb"


    Logs = Logger.new("server.log",true)
    Logs.write("Activation du serveur sur le port #{$PORT}")
    server = TCPServer.new($HOSTNAME, $PORT)
    while (session = server.accept)
      playerThread = Thread.new do
          com = Com.new(session)
          com.send("Bienvenu sur le serveur iShard")
          com.send("version actuel : 0.1a")
          a = com.question("Quel est votre nom ?")
          puts a
        end
        playerThread.join
    end


    mais ca ne marche pas :(
    comment faire ?
    voila la source complete
    merci
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      20 novembre 2006 à 12:43:48

      Salut,
      c'est quelque chose comme ceci dont tu as besoin, non ? :o

      server = TCPServer.open($PORT)
      serverInfo = server.addr

      # port = serverInfo[1]
      # ip = serverInfo[2]

      while true
              Thread.start(server.accept) do |client|
                      while client.gets
                              ########
                      end
                      client.close
              end
      end

      • Partager sur Facebook
      • Partager sur Twitter
        20 novembre 2006 à 14:20:48

        ha oui :)
        merci ca fonctionne
        • Partager sur Facebook
        • Partager sur Twitter

        [Ruby][TCPServer] Un Thread par connexion ?

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown