iPhone アプリとサーバー間の通信を必要とするプロジェクトに取り組んでいます。私の目的のために、Amazon Web Services を備えた EC2 サーバーを立ち上げました。電話から処理できるリクエストを作成するために、サーバーと iPhone 間の HTTP 通信を有効にしようとしています。現在、サーバー側で Ruby クライアントと Ruby コードを使用してテストしています。私のサーバー側のコードは次のようになります。
#!/usr/bin/env ruby
require 'rubygems'
require 'aws-sdk'
require 'socket'
require 'net/http'
server = TCPServer.open(2000)
loop {
Thread.start(server.accept) do |client|
puts 'Time requested on client side'
lines = []
while line = client.gets and line !~/^\s*$/
lines << line.chomp
for line in lines
puts line
end
end
#socket.print(Time.now.ctime)
client.puts(Time.now.ctime)
client.puts 'Closing connection'
client.close
end
}
このコードは、クライアントから送信されたデータを出力できますが、クライアントとサーバーの両方が、逆方向にデータを送信しようとするとハングアップします。データを他の方法で送信するために通信チャネルを再度開く前に、通信チャネルを閉じる必要がありますか? ここで同様の質問をしても、私は約1時間グーグルで検索しましたが、どこにも行きませんでした。別の注意として、これはリクエストを行うための最良の方法ですか、それとも他のものを使用する必要がありますか?