Rubyをもちいてサーバプログラムを行なっています。
Webに乗っていたソースコードを引用し,ソケットをもちいて接続を行うプログラムを書いたのですが、その間でデータベース接続を行い結果を取得してからその結果をクライアント側に返すようなプログラムにしようと思い、とりあえず第一歩としてクライアント側から送信を受理するとデータベースの中身を出力し、クライアントにはその後受信した内容をそのまま返却するプログラムを組みました。
しかし、なぜかクライアントに送信ができません。
以下にソースコードを掲載します
[Server.rb]
require 'mysql2'
require 'socket'
server = TCPServer.open(10001)
loop do
Thread.start(server.accept) do |client|
str = client.gets
#database out
client = Mysql2::Client.new(:host => 'localhost', :username => 'root',:passward => 'password')
query = %q{select * from テーブル名}
results = client.query(query)
results.each do |row|
puts "--------------------"
row.each do |key, value|
puts "#{key} => #{value}"
end
end
クライアントに返信
client.puts str client.close
end
end
client.puts str の位置をclient = Mysql::Client......
の前にすると実行がうまくいくことからデータベース接続の部分の処理が影響を与えているのではないかと思うのですが原因がわからない状況です。
どうかおたすけください
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。