如何使用纯erlang编写简单的hello world web服务器

如何使用纯erlang编写简单的hello world web服务器,erlang,Erlang,使用纯Erlang显示“hello world”HTML页面的web服务器的最简单实现是什么?Erlang中有575个字符 $ cat hgolf.erl main(_)->{ok,L}=gen_tcp:listen(36895,[]),s(L). s(L)->{ok,S}=gen_tcp:accept(L),receive{tcp,S,"GET "++R}->[F|_]=string:tokens("/var/www"++R," "),case case file:read

使用纯Erlang显示“hello world”HTML页面的web服务器的最简单实现是什么?

Erlang中有575个字符

$ cat hgolf.erl

main(_)->{ok,L}=gen_tcp:listen(36895,[]),s(L).
s(L)->{ok,S}=gen_tcp:accept(L),receive{tcp,S,"GET "++R}->[F|_]=string:tokens("/var/www"++R," "),case case file:read_file_info(F)of{ok,{_,_,regular,read,_,_,_,_,_,_,_,_,_,_}}->a;{ok,_}->"500 Server Error";_->"404 File Not Found"end of a->h(S,"200 OK\r\nContent-Type: "++case lists:reverse(F)of"lmth."++_->"text/html";"txt."++_->"text/plain";_->"application/octet-stream"end,[]),file:sendfile(F,S);E->h(S,E,E)end;_->E="405 Not Supported",h(S,E,E)end,gen_tcp:close(S),s(L).
h(S,H,B)->gen_tcp:send(S,["HTTP/1.1 ",H,"\r\n\r\n",B]).
如何运行

$ escript hgolf.erl

但是,作为标准Erlang/OTP发行版的一部分,还有更具特色的web服务器。

Erlang中有575个字符

$ cat hgolf.erl

main(_)->{ok,L}=gen_tcp:listen(36895,[]),s(L).
s(L)->{ok,S}=gen_tcp:accept(L),receive{tcp,S,"GET "++R}->[F|_]=string:tokens("/var/www"++R," "),case case file:read_file_info(F)of{ok,{_,_,regular,read,_,_,_,_,_,_,_,_,_,_}}->a;{ok,_}->"500 Server Error";_->"404 File Not Found"end of a->h(S,"200 OK\r\nContent-Type: "++case lists:reverse(F)of"lmth."++_->"text/html";"txt."++_->"text/plain";_->"application/octet-stream"end,[]),file:sendfile(F,S);E->h(S,E,E)end;_->E="405 Not Supported",h(S,E,E)end,gen_tcp:close(S),s(L).
h(S,H,B)->gen_tcp:send(S,["HTTP/1.1 ",H,"\r\n\r\n",B]).
如何运行

$ escript hgolf.erl

但是在标准的Erlang/OTP发行版中有更多功能强大的web服务器。

更简单的方法是使用Cowboy软件包,它们有优秀的文档,第一个例子是Hello World!一个。您可以在

上阅读,更简单的方法是使用Cowboy软件包,它们有优秀的文档,第一个示例是Hello World!一个。您可以在

上阅读,看看这个-看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。这是一个简单的Erlang HTTP 1.0 web服务器,大约40行代码,不包括注释:。看看这个-看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。这是一个简单的Erlang HTTP 1.0 web服务器,大约40行代码,不包括注释:。