echo_server

代码
 
  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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值