Erlang并发编程(二) --- Web服务
来源:互联网 发布:包装设计 知乎 编辑:程序博客网 时间:2024/05/16 15:20
使用Erlang来创建一个Web服务。
从简单的echo service开始:当访问该服务时,返回服务器端当前的系统时间。
-module(hello).-export([start/1]).start(Port) -> spawn(fun () -> {ok, Sock} = gen_tcp:listen(Port, [{active, false}]), loop(Sock) end).loop(Sock) -> {ok, Conn} = gen_tcp:accept(Sock), Handler = spawn(fun () -> handle(Conn) end), gen_tcp:controlling_process(Conn, Handler), loop(Sock).handle(Conn) ->gen_tcp:send(Conn, response()), gen_tcp:close(Conn).response() ->{{Y, M, D}, {H, I, S}} = calendar:local_time(),B = iolist_to_binary(lists:concat([Y, "-", M, "-", D, " ", H, ":", I, ":", S])),iolist_to_binary(io_lib:fwrite("HTTP/1.0 200 OK\nContent-Type: text/html\nContent-Length: ~p\n\n~s", [size(B), B])).
编译和启动服务:
1>C(hello).
2>hello:start(1234).
然后可以通过如下网址访问:
http://localhost:1234/
当然,为了简洁,我们还可以适当的改写response方法如下:
response() ->{{Y, M, D}, {H, I, S}} = calendar:local_time(), iolist_to_binary(io_lib:format("~p-~p-~p ~p:~p:~p", [Y, M, D, H, I, S])).
- Erlang并发编程(二) --- Web服务
- Erlang 并发编程基础二
- Erlang入门(二)— 并发编程
- Erlang/OTP并发编程实例(二)
- Erlang—并发编程
- Erlang并发编程(一)
- erlang并发编程模板
- Erlang并发编程1
- Erlang并发编程2
- erlang 并发编程
- Erlang并发编程
- Erlang并发编程
- Erlang并发编程-目录
- Erlang并发编程-第一章
- Erlang并发编程(三) --- 调试
- Erlang并发编程(四) --- mochiweb
- Erlang并发编程(五) --- bigwig
- Erlang/OTP并发编程实战
- C Socket Programming for Linux with a Server and Client Example Code
- 使用高版本的SDK后再导入以前用低版本的project时,会遇到一些兼容性的问题。
- vs2010中臃肿的ipch和sdf文件
- Spring中TransactionTemplate 简单灵活的事务配置及使用
- 研究显示云计算减少了管理安全性的时间和费用
- Erlang并发编程(二) --- Web服务
- ISE中的Verilog Test Fixture类型的.v文件为啥在Implementation中显示?如何修改?
- Android.mk学习笔记
- [Ajax]小山版Ajax实现无刷新树----- 实现过程解释
- java调用存储过程进行增、删、查、改操作(源代码)
- 同步和互斥有什么联系和区别
- UNIX 系统上的文本操作简介
- 线程的调度与切换
- 一个简单的基于多线程的web server