我正在尝试使用linux上的ruby构建聊天应用程序 ,所以我的客户端不能发送很多消息,它只是在第一个
发送一条消息服务器代码:
#!/usr/bin/ruby
require 'socket'
server = TCPServer.new(2008)
while (session = server.accept) && (input = session.gets)
puts input
end
客户代码:
#!/usr/bin/ruby
require 'socket'
begin
clientSession = TCPSocket.new( "localhost", 2008 )
rescue StandardError => bang
puts "Error !! "
else
while !(clientSession.closed?)
print "Enter message : "
msg = gets
clientSession.puts msg
end
end
非常感谢你的时间!!
答案 0 :(得分:6)
你的问题在这里:
while (session = server.accept) && (input = session.gets)
puts input
end
您正在接受while循环中的连接。你想要的是首先接受连接,然后循环:
connection = server.accept
while (input = connection.gets)
puts input
end