Skip to content

Instantly share code, notes, and snippets.

@danvideo
Forked from TeWu/gist:1234573
Created December 26, 2016 10:11
Show Gist options
  • Save danvideo/47cf9e6fd3ec68faa77507bface41549 to your computer and use it in GitHub Desktop.
Save danvideo/47cf9e6fd3ec68faa77507bface41549 to your computer and use it in GitHub Desktop.
TCP client and multithreaded server in 14 lines of Ruby code

TCP client and multithreaded server...

..in 14 lines of Ruby code

gem 'active_embed', :git => 'git://github.com/TeWu/ActiveEmbed.git'
require "socket"
server = TCPServer.open(2626)
loop do
	Thread.fork(server.accept) do |client| 
		client.puts("Hello, I'm Ruby TCP server", "I'm disconnecting, bye :*")
		client.close
	end
end

Server

require "socket"
server = TCPServer.open(2626)
loop do
	Thread.fork(server.accept) do |client| 
		client.puts("Hello, I'm Ruby TCP server", "I'm disconnecting, bye :*")
		client.close
	end
end

Client

require "socket"
s = TCPSocket.open("localhost", 2626)
while line = s.gets
	puts "received : #{line.chop}"
end
s.close
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment