1

Linuxでrubyを使用してチャットアプリケーションを構築しようとしているので、クライアントは多くのメッセージを送信できず、最初に1つのメッセージを送信するだけです。

サーバーコード:

#!/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 に答える