TCP クライアントに接続する Ruby サーバーを作成しています。私のサーバーは TCPServer を使用しており、TCPServer::recv() を使用しようとしていますが、データを待機しないため、データが受信されるまでタイトなループが続きます。
断続的なデータを処理する最も効率的な方法は何ですか? 別のサーバーをエミュレートしようとしているため、送信されるデータを変更できません。データが送信されるのを待つ TCPServer/TCPSocket からの read like ステートメントはどれですか?
require "socket"
dts = TCPServer.new('localhost', 20000)
s = dts.accept
print(s, " is accepted\n")
loopCount = 0;
loop do
Thread.start(s) do
loopCount = loopCount + 1
lineRcvd = s.recv(1024)
if ( !lineRcvd.empty? )
puts("#{loopCount} Received: #{lineRcvd}")
s.write(Time.now)
end
end
end
s.close
print(s, " is gone\n")
御時間ありがとうございます。