Skip to content

Instantly share code, notes, and snippets.

@EvanBrightside
Created November 27, 2018 23:17
Show Gist options
  • Save EvanBrightside/fe35e12398d188bd3d6ed8ca5d438a83 to your computer and use it in GitHub Desktop.
Save EvanBrightside/fe35e12398d188bd3d6ed8ca5d438a83 to your computer and use it in GitHub Desktop.
Chat Server Ruby
require 'socket'
def welcome(chatter)
chatter.print 'Welcome! Please enter your name: '
chatter.readline.chomp
end
def broadcast(message, chatters)
chatters.each do |chatter|
chatter.puts message
end
end
s = TCPServer.new(3939)
chatters = []
while (chatter = s.accept)
Thread.new(chatter) do |c|
name = welcome(chatter)
broadcast("#{name} has joned", chatters)
chatters << chatter
begin
loop do
line = c.readline
broadcast("#{name}: #{line}", chatters)
end
rescue EOFError
c.close
chatters.delete(c)
broadcast("#{name} has left", chatters)
end
end
end
@EvanBrightside
Copy link
Author

Start it:
1st terminal - ruby chat_server.rb
2nd terminal - telnet localhost 3939

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment