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