我试图在linux上使用ruby构建一个聊天应用程序,所以我的客户端不能发送很多消息,它只是在第一个发送一条消息
服务器代码:
#!/usr/bin/ruby
require 'socket'
server = TCPServer.new(2008)
while (session = server.accept) && (input = session.gets)
puts input
end
Run Code Online (Sandbox Code Playgroud)
客户代码:
#!/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
Run Code Online (Sandbox Code Playgroud)
非常感谢你的时间!
你的问题在这里:
while (session = server.accept) && (input = session.gets)
puts input
end
Run Code Online (Sandbox Code Playgroud)
您正在接受while循环中的连接.你想要的是首先接受连接,然后循环:
connection = server.accept
while (input = connection.gets)
puts input
end
Run Code Online (Sandbox Code Playgroud)