我正在开发一个需要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
}
代码可以打印从客户端发送的数据,但是当尝试以其他方式发送数据时,客户端和服务器都会挂起。在重新打开通信通道以便以其他方式发送数据之前,需要关闭通信通道。我一直在谷歌搜索大约一个小时,并没有在哪里,即使从这里类似的问题。另一方面,这是处理请求的最佳方式还是我应该使用别的东西?