1

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

非常感谢您的时间!!

4

1 回答 1

6

你的问题在这里:

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

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

connection = server.accept

while (input = connection.gets)
  puts input
end
于 2013-01-05T10:32:50.643 回答