转自http://coderplay.javaeye.com/blog/93403
1. -module(echo_server).
2. -export([start/0,stop/0]).
3.
4. -define(LISTEN_PORT,12345). % 开放端口
5. -define(MAX_CONN, 5000). % 最大连接数
6.
7. start() ->
8. process_flag(trap_exit, true), % 设置退出陷阱
9. tcp_server:start_raw_server(?LISTEN_PORT,
10. fun(Socket) -> socket_handler(Socket,self()) end,
11. ?MAX_CONN,
12. 0).
13.
14. %% 处理数据
15. socket_handler(Socket,Controller) ->
16. receive
17. {tcp, Socket, Bin} ->
18. gen_tcp:send(Socket, Bin); % echo
19. {tcp_closed, Socket} ->
20. ok;
21. _ ->
22. socket_handler(Socket,Controller)
23. end.
24.
25. stop() ->
26. tcp_server:stop(?LISTEN_PORT).
基于Joe Armstrong 的tcp_server模块来做的, 试试先 :)
编译
erl -noshell -s make all -s init stop
运行
erl -noshell -sname coderplay -s echo_server start
posted on 2009-09-14 12:24
暗夜教父 阅读(399)
评论(0) 编辑 收藏 引用 所属分类:
erlang