From 0aaab6db1cc688b8947b0b279933a70cfe019a06 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Fri, 15 Jun 2012 09:49:35 -0400 Subject: [PATCH] getting familiar with ruby tcp socket stuff --- ruby-sockets/ping-pong-client.rb | 11 +++++++++++ ruby-sockets/ping-pong-server.rb | 15 +++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 ruby-sockets/ping-pong-client.rb create mode 100644 ruby-sockets/ping-pong-server.rb diff --git a/ruby-sockets/ping-pong-client.rb b/ruby-sockets/ping-pong-client.rb new file mode 100644 index 0000000..1cecdb1 --- /dev/null +++ b/ruby-sockets/ping-pong-client.rb @@ -0,0 +1,11 @@ +require 'socket' + +loop do + TCPSocket.open('127.0.0.1', 24000) do |sock| + sock.send("PING\n", 0) + pong = sock.recv(100) + puts "client: RECV PONG" + sock.close + end + sleep 0.5 +end diff --git a/ruby-sockets/ping-pong-server.rb b/ruby-sockets/ping-pong-server.rb new file mode 100644 index 0000000..fc33c93 --- /dev/null +++ b/ruby-sockets/ping-pong-server.rb @@ -0,0 +1,15 @@ +require 'socket' + +server = TCPServer.new('0.0.0.0', 24000) +loop do + Thread.start(server.accept) do |client| + if (ping = client.gets) =~ /PING/ + puts 'server: RECV PING' + client.puts("PONG\n") + else + puts "server: RECV #{ping}" + client.puts("NOPE\n") + end + client.close + end +end