EventMachine实现简单的服务器和客户端
EventMachine是一个为ruby提供的事件驱动模型网络编程库, 就像Twisted和Python一样. 可以很容易的实现一个服务器和客户端通信的例子.
?
1. 首先安装eventmachine
gem install eventmachine
?
2. 创建一个服务器
#!/usr/bin/env rubyrequire ‘rubygems’require ‘eventmachine’module EchoServer def receive_data(data) send_data(data) endendEventMachine::run do host = ’0.0.0.0′ port = 8080 EventMachine::start_server host, port, EchoServer puts "Started EchoServer on #{host}:#{port}…"end?
3. 创建一个客户端
#!/usr/bin/env rubyrequire ‘rubygems’require ‘eventmachine’module HttpHeaders def post_init send_data "GET /\r\n\r\n" @data = "" end def receive_data(data) @data << data end def unbind if @data =~ /[\n][\r]*[\n]/m $`.each {|line| puts ">>> #{line}" } end EventMachine::stop_event_loop endendEventMachine::run do EventMachine::connect ‘127.0.0.1’, 8080, HttpHeadersend?