基于erlang的简单Web服务器实现

来源:互联网 发布:linux vim 保存退出 编辑:程序博客网 时间:2024/04/29 15:14

当然只是用于实验,如果需要用在正式的项目中,推荐使用mochiweb。

https://github.com/mochi/mochiweb

测试代码如下:

-module(http).%% ====================================================================%% API functions%% ====================================================================-export([start/1]).%% ====================================================================%% Internal functions%% ====================================================================start(Port) ->spawn(fun () -> {ok, Socket} = gen_tcp:listen(Port, [{active, false}]), loop(Socket) end).loop(Socket) ->    {ok, Connection} = gen_tcp:accept(Socket),    Handler = spawn(fun () -> handle(Connection) end),    gen_tcp:controlling_process(Connection, Handler),    loop(Socket).handle(Connection) ->    gen_tcp:send(Connection, response("Hello World")),    gen_tcp:close(Connection).response(Data) ->    Result = iolist_to_binary(Data),    iolist_to_binary(io_lib:fwrite("HTTP/1.0 200 OK\nContent-Type: text/html\nContent-Length: ~p\n\n~s", [size(Result), Result])).


原创粉丝点击