面试题答案
一键面试- 安装EventMachine库:
首先需要确保安装了
eventmachine
库。如果使用gem
,可以在命令行运行:gem install eventmachine
- 关键代码片段:
require 'eventmachine' class MyServer < EventMachine::Connection def post_init puts "A client has connected!" send_data "Welcome to the server!\n" end end EventMachine.run do EventMachine.start_server "0.0.0.0", 8081, MyServer puts "Server is running on port 8081" end
- 原理解释:
- 引入库:
require 'eventmachine'
引入eventmachine
库,使得代码可以使用其提供的功能。 - 定义连接类:
MyServer < EventMachine::Connection
定义了一个继承自EventMachine::Connection
的类。post_init
方法会在新连接建立时被调用。在这个方法中,puts "A client has connected!"
在服务器端打印连接信息,send_data "Welcome to the server!\n"
向客户端发送欢迎消息。 - 启动服务器:
EventMachine.run do
块启动EventMachine
事件循环。EventMachine.start_server "0.0.0.0", 8081, MyServer
在指定的IP地址0.0.0.0
(表示监听所有网络接口)和端口8081
上启动服务器,并指定使用MyServer
类来处理连接。puts "Server is running on port 8081"
在服务器启动时打印提示信息。整个EventMachine.run
块会持续运行,等待并处理客户端连接等事件。
- 引入库: