EventMachine实现简单的服务器和客户端

EventMachine是一个为ruby提供的事件驱动模型网络编程库, 就像Twisted和Python一样. 可以很容易的实现一个服务器和客户端通信的例子.

 

1. 首先安装eventmachine

gem install eventmachine

 

2. 创建一个服务器

#!/usr/bin/env ruby

require ‘rubygems’
require ‘eventmachine’

module EchoServer  
  def receive_data(data)
    send_data(data)
  end
end

EventMachine::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 ruby

require ‘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
  end
end

EventMachine::run do
  EventMachine::connect ‘127.0.0.1’, 8080, HttpHeaders
end
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值