efinf:blc2016:networks:rubyserver

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

efinf:blc2016:networks:rubyserver [2016/11/02 11:00] – created Ivo Blöchligerefinf:blc2016:networks:rubyserver [2016/11/02 11:02] (current) Ivo Blöchliger
Line 1: Line 1:
 +===== Minimalserver (single threaded) =====
 +
 +<code ruby singleserver.rb>
 +require 'socket'
 +# Server auf port 420XX laufen lassen
 +server = TCPServer.open(42001)  
 +# Endlos-Schleife
 +loop {
 +  # Auf Verbindung warten.
 +  client = server.accept
 +  client.puts "Serveur du Prof! Votre nom svp:"
 +  name = client.gets.chomp
 +  client.puts "Bonjour #{name}!\n\nEt au revoir!"
 +  client.close
 +}
 +
 +</code>
 +
 +===== Multithreaded Server (simultane Verbindungen) =====
 +<code ruby multiserver.rb>
 +require 'socket'
 +# Server auf port 420XX laufen lassen
 +server = TCPServer.open(42001)  
 +# Endlos-Schleife
 +loop {
 +  # Auf Verbindung warten. 
 +  # Wenn verbunden, einen Thread damit beschäftigen
 +  #  und gleich auf nächste Verbindung warten
 +  Thread.start(server.accept) { |client|
 +    client.puts "Serveur du Prof! Votre nom svp:"
 +    name = client.gets.chomp
 +    client.puts "Bonjour #{name}!\n\nEt au revoir"
 +    client.close
 +  }
 +}
 +</code>
 +