Jump to content

Echo server: Difference between revisions

→‎{{header|Ruby}}: Add code using Socket.tcp_server_loop from Ruby 1.9.2. Keep old code for old Ruby versions.
(→‎{{header|Common Lisp}}: making hidden category a banner)
(→‎{{header|Ruby}}: Add code using Socket.tcp_server_loop from Ruby 1.9.2. Keep old code for old Ruby versions.)
Line 1,123:
 
=={{header|Ruby}}==
===Ruby 1.9.2===
{{improve|Ruby|Explain why ''Socket.tcp_server_loop'' is better than ''TCPServer.new''.}}
{{works with|Ruby|1.9.2}}
<lang ruby>require 'socket'
 
Socket.tcp_server_loop(12321) do |conn, addr|
Thread.new do
client = "#{addr.ip_address}:#{addr.ip_port}"
puts "#{client} is connected"
begin
loop do
line = conn.readline
puts "#{client} says: #{line}"
conn.puts(line)
end
rescue EOFError
conn.close
puts "#{client} has disconnected"
end
end
end</lang>
 
===Old Ruby===
<lang ruby>require 'socket'
server = TCPServer.new(12321)
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.