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

erlang 服务器端网络架构

 
阅读更多

tcp连接和接收架构

 

listeners_sup.erl ->  

创建一个tcp_listener进程

 

 

tcp_listener进程

1. init的时候,去创建一个gen_tcp:listen 的监听socket

2. 开启大量tcp_acceptor_sup监控树进程,并吧创建好的socket进程传给tcp_acceptor_sup进程中

 

tcp_acceptor_sup进程 

创建 tcp_acceptor进程

 

tcp_acceptor进程

1. init的时候去prim_inet:async_accept异步接收客户端发来的连接

2. 接收到客户端发来的连接,然后就去创建tcp_client_handler进程

3. 将创建好的tcp_client_handler进程和监听的socket绑定在一起

 

tcp_client_handler进程

1. init的时候去inet:setopts {active, once}

2. handle_info的时候匹配客户端发来的请求

3. 其他的一下细节

{header, 10} 

定义10个字符的消息头,一个字符8个字节,

前面4个字符 就是一个32为的int类型id,

中建4个字符 就是一个32为的int类型是session,

最后在2个字符 就是一个16位的int类型cmd

 

分享到:
评论

相关推荐

    erlang-java聊天

    Erlang客户端可以直接与Erlang服务器通信,而Java客户端则通过Jinterface与Erlang服务器交互。客户端负责显示聊天界面,接收用户输入,并将消息发送到服务器。 - **消息协议**:为了实现Erlang和Java之间的通信,...

    英雄远征erlang源码

    【标题】:“英雄远征erlang源码”指的是一个基于Erlang编程语言开发的服务器端源代码,用于支持网络游戏“英雄远征”的运行。Erlang是一种并发性极强、容错性好的函数式编程语言,常用于构建高可用性的分布式系统,...

    erlang聊天室源码

    设计图中可能包括客户端和服务器端的结构,数据流的方向,以及各部分如何协同工作。例如,Erlang的进程模型可能被用来创建多个并发的聊天室实例,每个进程负责处理特定用户或一组用户的通信。 进入核心代码部分,`...

    JavaScript + Delphi + ErLang讲座内容(4)

    erlang demo with delphi at srv`可能涉及Delphi在服务器端直接调用Erlang服务的示例。 - `15. erlang + delphi demo with Web UI`可能是通过Web界面展示Erlang和Delphi的集成,这可能使用了Erlang的Web开发框架,...

    基于erlang的文件存储

    Erlang可以很容易地实现这些协议的服务器端,而Java可以使用HttpURLConnection或者其他的开源库来实现客户端的文件上传和下载。 5. **并发处理**:Erlang的进程模型使得并发处理变得简单且高效,每个gen_server实例...

    Erlang实战

    它可以被看作是客户端/服务器架构的一种抽象。 - 用户模块需要定义一系列回调函数,如 `init/1`、`handle_call/3`、`handle_cast/2` 等,这些函数定义了服务器的行为。 - **call** 和 **cast** 分别代表同步和异步...

    Erlang_OTP_设计原理(含目录).pdf

    工作进程则负责执行实际的计算任务,它们可能是服务器端进程、有限状态机等。 行为(Behavior)是一组预定义的模式,用于实现常见类型的进程,如服务器进程(Gen_Server)、有限状态机(Gen_Fsm)、事件处理器(Gen...

    mqtt服务器端可配置服务器

    在本文中,我们将深入探讨MQTT服务器端的可配置性及其相关知识点。 **1. MQTT服务器配置** MQTT服务器的配置主要涉及以下几个方面: - **监听端口**:服务器需要指定一个或多个端口来监听客户端的连接请求。默认...

    erlang+rabbit+socat.zip

    RabbitMQ 是一个基于 AMQP(Advanced Message Queuing Protocol)的消息代理和队列服务器,它使用 Erlang 语言编写。RabbitMQ 可以在分布式系统中作为中间件,实现异步处理、解耦组件以及消息传递。在本压缩包中,...

    Erlang中文手册

    - **示例**: 设计一个简单的聊天室应用,包括客户端和服务器端。 - **功能**: - 客户端可以发送消息到服务器。 - 服务器广播消息给所有在线客户端。 - 支持用户登录和退出。 #### 四、健壮性 **1.4.1 超时 ...

    matlab分时代码-erlang-trader:将AlgoTrader(Java)代码移植到Erlang[已放弃]

    多用户交易平台(服务器端) 系统集成** 这个非常好的,写得很好的项目:移植到Erlang上将是一个很好的案例,说明如何在干净优雅的体系结构中调制和扩展到多个节点,在处理器之间共享责任。 您可以轻松地将节点配置...

    Server Metaprogramming Ruby-Pyton-Groovy-Haskell-Erlang.pdf

    本书探讨了五种动态语言——Ruby、Python、Groovy、Haskell 和 Erlang——如何在服务器端进行元编程。 #### 知识点二:超越 Java 的背景 本书《Beyond Java》由 Bruce A. Tate 撰写,由 O'Reilly 出版社出版于2005...

    erlang_server:卡牌游戏《萌兽堂》完整服务器erlang原始码

    《萌兽堂》是一款以卡牌对战为主题的网络游戏,其后端服务器采用了Erlang语言进行开发。Erlang是一种面向并发的、函数式编程语言,尤其适合构建高可用性和可扩展性的分布式系统,比如实时通信和大规模在线游戏服务器...

    mqtt的服务器端,适合单机调试

    2. **服务器端**:在MQTT架构中,服务器被称为Broker。Broker负责接收客户端(Publishers和Subscribers)发送的消息,并根据订阅规则将消息路由到正确的接收者。此压缩包提供的就是一个MQTT Broker,用于单机调试,...

    aurora-server:Aurora是用Erlang编写的Android聊天服务器的工作名称

    同时,服务器端也可能有严格的权限管理和认证机制,防止未授权的访问。 7. **可扩展性**:由于Erlang和Mnesia的分布式特性,Aurora服务器可以轻松地扩展到多台机器,以应对用户数量的增长。通过增加节点,系统可以...

    hamler:在Erlang VM上运行的Haskell风格的功能编程语言

    - **服务器端开发**:其纯函数式特性和类型安全可以提升代码质量,降低维护成本。 5. **学习与开发**: - **hamler-master**:这个文件名可能是hamler项目的源码仓库,包含hamler语言的实现细节,开发者可以通过...

    E语言源码做自己的Web网络服务器.zip

    - **动态内容生成**:对于需要服务器端处理的动态内容,Web服务器需要调用应用程序接口(API)生成响应。 3. **E语言构建Web服务器的关键技术**: - **Cowboy框架**:E语言中最受欢迎的Web服务器框架之一,用于...

Global site tag (gtag.js) - Google Analytics