Differences
This shows you the differences between two versions of the page.
| efinf:blc2016:networks:rubyserver [2016/11/02 11:00] – created Ivo Blöchliger | efinf:blc2016:networks:rubyserver [2016/11/02 11:02] (current) – Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== Minimalserver (single threaded) ===== | ||
| + | |||
| + | <code ruby singleserver.rb> | ||
| + | require ' | ||
| + | # Server auf port 420XX laufen lassen | ||
| + | server = TCPServer.open(42001) | ||
| + | # Endlos-Schleife | ||
| + | loop { | ||
| + | # Auf Verbindung warten. | ||
| + | client = server.accept | ||
| + | client.puts " | ||
| + | name = client.gets.chomp | ||
| + | client.puts " | ||
| + | client.close | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Multithreaded Server (simultane Verbindungen) ===== | ||
| + | <code ruby multiserver.rb> | ||
| + | require ' | ||
| + | # 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 " | ||
| + | name = client.gets.chomp | ||
| + | client.puts " | ||
| + | client.close | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||