sinatra でサービスのダンプを取り、それを Web ページのコンテンツ領域に表示する必要があります。
コードを介してアクセスする必要があるサービスは、サーバーのポート 6557 で実行されます。暗号化や認証は使用しません。httpのような単純な読み取り専用のリクエスト応答です。これがターミナルで機能するものです
$ echo "GET hosts" | nc 192.168.1.1 6557
意図した出力が得られます。sinatra アプリケーションを使用して同様のことを行う必要があります。
私はこのコードを書きましたが、ひどく間違っています。コードやルックアップ資料、または例を手伝ってくれる人はいますか。
get '/' do
host = "192.168.1.1"
port = 6557
dat = ""
@socket = TCPSocket.open (host, port)
while(true)
if(IO.select([],[],[@socket],0))
socket.close
return
end
begin
while( (data = @socket.recv_nonblock(100)) != "")
dat = dat+ data
end
rescue Errno::EAGAIN
end
begin
@str = "GET hosts"
@socket.puts(@str);
rescue Errno::EAGAIN
rescue EOFError
exit
end
IO.select([@socket], [@socket], [@socket])
end
@line = dat
erb :info
end
実行中のコードがハングアップします。また、可能であれば、問題の概念的なコンテキストを取得するために読むためのリンクをいくつか提供してください。