GPRSモジュールから作成されたソケットを処理するためのrubyサーバーを実装しています。重要なのは、モジュールの電源がオフになっても、ソケットが閉じていることを示すものがないということです。
同じサーバーで複数のソケットを処理するスレッドを実行しています。私が求めているのはこれです:スレッド内でタイマーを使用し、ソケット入力のたびにタイマーをリセットし、タイムアウトに達した場合にスレッドを閉じる方法はありますか?これに関する詳細情報はどこにありますか?
編集:ソケットのクローズを検出しないコード例
require 'socket'
server = TCPServer.open(41000)
loop do
Thread.start(server.accept) do |client|
puts "Client connected"
begin
loop do
line = client.readline
open('log.txt', 'a') { |f|
f.puts line.strip
}
end
rescue
puts "Client disconnected"
end
end
end