教父的告白
一切都是纸老虎
posts - 82,  comments - 7,  trackbacks - 0
转自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 暗夜教父 阅读(401) 评论(0)  编辑 收藏 引用 所属分类: erlang

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理



<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜