Skip to content

Instantly share code, notes, and snippets.

@ruanwz
Created September 19, 2010 08:23
Show Gist options
  • Save ruanwz/586577 to your computer and use it in GitHub Desktop.
Save ruanwz/586577 to your computer and use it in GitHub Desktop.
require "socket"
@echo_server = TCPServer.new('localhost', 2200)
@socket_list = Array.new
@socket_list.push @echo_server
loop do
return_array = select( @socket_list, nil, nil, nil )
res = return_array[0][0]
if res == @echo_server
client=res.accept
@socket_list.push client
puts "#{client.peeraddr[2]}:#{client.peeraddr[1]} is connected"
else
data = res.recvfrom( 20 )[0].chomp
if data =="exit"
res.puts "bye!"
puts "#{res.peeraddr[2]}:#{res.peeraddr[1]} is disconnect"
res.close
@socket_list.delete res
else
puts "I only received 20 bytes '#{data}' from #{res.peeraddr[2]}:#{res.peeraddr[1]}"
res.puts "You said: #{data}"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment