óCoffeeScript Cookbook

简单的服务器

问题

你想要提供一个网络服务。

方法

创建一个简单的TCP服务器。

使用Node.js

net = require 'net'

domain = 'localhost'
port = 9001

server = net.createServer (socket) ->
	console.log "Received connection from #{socket.remoteAddress}"
	socket.write "Hello, World!\n"
	socket.end()

console.log "Listening to #{domain}:#{port}"
server.listen port, domain

使用示例

使用简单的客户端访问:

$ coffee basic-server.coffee
Listening to localhost:9001
Received connection from 127.0.0.1
Received connection from 127.0.0.1
[...]

详解

传递给@net.createServer@的函数接受一个新的socket对象,这个socket对象会提供一个指向客户端的链接。这种简单的服务直接就和访问这个沟通,但如果是比较繁忙的服务器。会把这个socket单独传递给一个专属的处理器。然后会过来继续会过来完成任务——等待下一个客户端请求。

参看简单的客户端, 双向服务器, 以及双向客户端这几分“菜肴”.

练习

  • 添加自定义domain和端口的支持,可基于命令行参数,也可以使用配置文件。