`
coderplay
  • 浏览: 578006 次
  • 性别: Icon_minigender_1
  • 来自: 广州杭州
社区版块
存档分类
最新评论

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
分享到:
评论
3 楼 wenew 2008-03-19  
Distributed Erlang has all or nothing security [1] (so this is just too dangerous)
:erlang 用behavior来做,就没有这个问题,运行erlang的服务器不要使用root用户!
Distributed Erlang was not designed for thousands of clients
:我在http://wiki.trapexit.org/一个Non-Blocking Tcp Server上进行了简单的
stress测试,可以轻松建立15k的connections,据说可以建多达80K的connections
2 楼 wenew 2008-01-24  
好像你的不是一个echo server也,它只会接收,没有echo
1 楼 inshua 2008-01-04  
我下载了这个模块。在文档中发现一段危险的文字:

This solution does not involve distributed Erlang. Their are several reasons for this:

Distributed Erlang has all or nothing security [1] (so this is just too dangerous)

Distributed Erlang was not designed for thousands of clients


第二点很致命。博主如何看。

相关推荐

    UDP_ECHO.rar_ udp_echo_server_UDP server client_echo server_them

    UDP_ECHO.rar 包含的是一个基于UDP协议实现的回显服务器(UDP Echo Server)和客户端(UDP Echo Client)的示例程序,它们用于测试网络连接和理解UDP协议的工作原理。 回显服务是网络通信中的一个基础概念,它接收...

    ZYNQ 7010 LWIP实现echo_server驱动(SDK驱动).zip

    在本文中,我们将深入探讨如何在ZYNQ 7010平台上利用LWIP(Lightweight IP)库实现一个echo_server驱动,并通过Xilinx Software Development Kit (SDK)进行驱动程序开发。首先,我们理解一下ZYNQ 7010、LWIP和SDK...

    ZYNQ 7020 lwip实现echo_server驱动(SDK驱动).zip

    《ZYNQ 7020 lwip实现echo_server驱动(SDK驱动)详解》 ZYNQ 7020是一款由Xilinx公司推出的基于ARM Cortex-A9双核处理器的系统级芯片(System on Chip,SoC),广泛应用于嵌入式系统设计中,特别是工业控制、图像...

    udp_echo_server.v

    udp_echo_server.v

    echo_server_ini.sh

    echo_server_ini.sh

    半同步反应堆模型实现Echo_Server

    在"Echo_Server"的实现中,我们通常会创建一个服务器,它能够响应客户端发送的数据并原样返回,即所谓的回显服务。这种服务常用于测试网络连接和协议实现。以下是对这个模型和实现的详细解释: 1. **事件库**:在...

    tcp-echo.rar_Echo Echo_TCP echo client_linux_tcp

    这个压缩包包含了两个关键文件:tcp_echo_client和tcp_echo_server,分别代表了Echo服务的客户端和服务器端程序。 首先,让我们深入理解TCP协议。传输控制协议(TCP)是互联网协议栈中最核心的部分之一,属于传输层...

    STM32F407_ETH(神舟王FreeRTOS操作系统udptcp_echo_server_netco.rar

    在"STM32F407_ETH 神舟王FreeRTOS操作系统"项目中,开发人员利用STM32F407的以太网接口实现了TCP/UDP协议栈,创建了一个echo服务器。Echo服务器是一种网络服务,它会将接收到的数据原样返回给发送者,常用于网络测试...

    tcpecho.rar_ tcpecho_EchoServer_echo_echo server_tcp echo

    TCP Echo服务器和客户端是网络通信中的一个基础概念,主要用于测试网络连接和数据传输的可靠性。在本案例中,"tcpecho.rar" 是一个压缩包,包含了一个名为 "tcp echo" 的程序或脚本,用于实现TCP协议的Echo服务。...

    tcpecho.zip_Echo Echo_echo server_echotcpip

    【TCP/IP Echo 服务器原理与实现】 在计算机网络通信中,Echo 服务器是一种常见的测试工具,它接收客户端发送的数据并原样返回,主要用于检查网络连接的可靠性。"tcpecho.zip" 包含了一个基于 TCP/IP 实现的 Echo ...

    1_echo_server

    标题“1_echo_server”指的是一个基于网络通信的回显服务器程序。在IT领域,回显服务器是一种基础的网络服务,它的主要功能是接收客户端发送的数据并原封不动地返回给客户端,常用于测试网络连接、协议实现或者进行...

    TCP_ECHO.rar_ECHO JAVA_echo server_java tcp server

    标题"TCP_ECHO.rar_ECHO JAVA_echo server_java tcp server"暗示了我们将讨论一个使用Java编程语言实现的TCP协议的Echo服务器。Echo服务器的基本功能是接收客户端发送的数据,并将这些数据原封不动地返回给客户端,...

    (基于KC705 Microblaze 的lwip echo server 实现例程)RWddr3Ether_v5.rar

    标题中的"(基于KC705 Microblaze 的lwip echo server 实现例程)RWddr3Ether_v5.rar"指示了这是一个使用Xilinx KC705开发板,基于Microblaze处理器,并实现了LwIP(Lightweight IP)echo服务器的工程示例。...

    laravel-echo-server:Docker容器中的Laravel Echo Server

    环境变量您可以修改的变量是: LARAVEL_ECHO_SERVER_AUTH_HOST验证私有和在线状态通道的服务器的主机LARAVEL_ECHO_SERVER_HOST服务器的主机LARAVEL_ECHO_SERVER_PORT服务器的端口LARAVEL_ECHO_SERVER_DEBUG调试模式...

    Acronis_True_Image_Echo_Enterprise_Server 9.5 说明 1 FOR 8

    ### Acronis True Image Echo Enterprise Server 9.5 服务器备份系统详解 #### 一、产品概述 **Acronis True Image Echo Enterprise Server 9.5**是一款专为服务器设计的强大备份解决方案,由著名的备份软件供应商...

    UDP-echo-client-server.rar_Echo Echo_java udp_java udp echo_udp

    在这个“UDP echo client server”项目中,我们有两个核心文件:UDPClient.java 和 UDPEchoServer.java。这两个文件分别实现了UDP协议中的客户端和服务端功能,用于演示UDP数据包的发送和接收,也就是所谓的回显服务...

    baserver服务器框架C++ Tcp server

    bas为boost_asio_server(baserver)的简称,是采用...5、提供echo_server/echo_client、ssl_server/ssl_client、proxy_server、http_server(基于asio的http server示例)等示例供参考。 请使用svn checkout最新的代码。

    udp_echoserver DP83848网络服务函数库

    在本项目中,“udp_echoserver”是一个基于DP83848网络服务函数库的UDP服务器示例,主要用于演示如何在STM32F407这样的微控制器上实现UDP通信。 DP83848是一款常见的以太网控制器,广泛应用于嵌入式系统,为设备...

    tcp_echo.zip_Echo Echo_tcp echo_tcp_echo

    在TCP Echo程序中,主要有两个组成部分:客户端(Client)和服务器端(Server)。客户端负责发起连接请求,发送数据,并接收服务器返回的数据;服务器端则负责监听特定端口,接受客户端连接,接收数据并将其回送给...

    udp_echo_svr_v6.rar_IPV6_ipv6 udp_linux server_linux 服务器_udp ser

    描述中的"linux下ipv6 UDP SERVER 服务器端"进一步确认了这个项目是在Linux操作系统上运行的,目的是构建一个使用IPv6地址的UDP服务器。在Linux中,可以利用socket编程接口来实现这样的服务器,主要涉及`...

Global site tag (gtag.js) - Google Analytics