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"