Ruby tcp客户端无法从eventmachine接收数据

Ruby tcp客户端无法从eventmachine接收数据,ruby,tcp,eventmachine,Ruby,Tcp,Eventmachine,这是代码,客户端: require 'rubygems' require 'benchmark' require 'socket' i=0 TCPSocket.open "127.0.0.1", 8080 do |s| s.send "#{i}th sending", 0 if line = s.gets puts line end end 服务器: require 'rubygems' require 'benchmark' require 'ev

这是代码,客户端:

require 'rubygems'
require 'benchmark'
require 'socket'

i=0
TCPSocket.open "127.0.0.1", 8080 do |s|
  s.send "#{i}th sending", 0        
   if line = s.gets
     puts line
   end
end
服务器:

require 'rubygems'
require 'benchmark'
require 'eventmachine'
class Handler  < EventMachine::Connection
  def receive_data(data)
    sleep 2 # simulate a long running request
    send_data "send_response"
    puts data
  end
end

EventMachine::run {
  EventMachine::start_server("0.0.0.0", 8080, Handler)
  puts "Listening..."
}
需要“rubygems”
需要“基准”
需要“eventmachine”
类处理程序

客户端无法打印任何内容

这是客户端中的
s.get
与服务器中的
send\u data“send\u response”
之间的交互

当我改变时,你的小测试对我来说很好:

send_data "send_response"

s.get
正在等待来自远程客户端的换行。没有人来

send_data "send_response\n"