使用ruby聊天应用程序

时间:2013-01-05 09:38:56

标签: ruby sockets chat

我正在尝试使用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

非常感谢你的时间!!

1 个答案:

答案 0 :(得分:6)

你的问题在这里:

while (session = server.accept) && (input = session.gets)
  puts input
end 

您正在接受while循环中的连接。你想要的是首先接受连接,然后循环:

connection = server.accept

while (input = connection.gets)
  puts input
end