1

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時間グーグルで検索しましたが、どこにも行きませんでした。別の注意として、これはリクエストを行うための最良の方法ですか、それとも他のものを使用する必要がありますか?

4

0 に答える 0