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

erlang inet:setopts 未公开选项

阅读更多
inet:setopt有packet设置选项:
{packet, PacketType} (TCP/IP sockets)
Defines the type of packets to use for a socket. The following values are valid:
raw | 0
No packaging is done.
1 | 2 | 4
Packets consist of a header specifying the number of bytes in the packet, followed by that number of bytes. The length of header can be one, two, or four bytes; the order of the bytes is big-endian. Each send operation will generate the header, and the header will be stripped off on each receive operation.
asn1 | cdr | sunrm | fcgi | tpkt | line
These packet types only have effect on receiving. When sending a packet, it is the responsibility of the application to supply a correct header. On receiving, however, there will be one message sent to the controlling process for each complete packet received, and, similarly, each call to gen_tcp:recv/2,3 returns one complete packet. The header is not stripped off.
The meanings of the packet types are as follows:
asn1 - ASN.1 BER,
sunrm - Sun's RPC encoding,
cdr - CORBA (GIOP 1.1),
fcgi - Fast CGI,
tpkt - TPKT format [RFC1006],
line - Line mode, a packet is a line terminated with newline, lines longer than the receive buffer are truncated.
文档中写的就这么多了 其实还有2个选项:http, httph 用于解释http的请求
实现在otp_src_R11B-5\erts\emulator\drivers\common\inet_drv.c 里面
#ifdef USE_HTTP
。。。
#endif
/*
** load http message:
**  {http_eoh, S}                          - end of headers
**  {http_header,   S, Key, Value}         - Key = atom() | string()
**  {http_request,  S, Method,Url,Version}
**  {http_response, S, Version, Status, Message}
**  {http_error,    S, Error-Line}
*/
消息以上面的方式发给process,用于gen_tcp


由于在driver层面实现的 所以效率就很高,对于编写http隧道之类的程序 很有帮助哦
分享到:
评论

相关推荐

    Erlang入门:构建application练习4(进程link的作用)

    在Erlang编程语言中,进程是其核心特性之一,它们是并发执行的实体,类似于其他语言中的线程。在Erlang中,进程间通信(IPC)是通过消息传递来实现的,而`link`机制是这个通信模型中非常重要的一部分。本教程将通过...

    Erlang入门:构建application练习5(监督树)

    Erlang是一种面向并发的、函数式编程语言,特别适合于构建高可用性和容错性的分布式系统。在Erlang中,"应用"(application)是组织代码的基本单元,它包含了模块、配置文件以及启动和停止应用程序的逻辑。在这个...

    编写分布式的Erlang程序:陷阱和对策

    ### 编写分布式的Erlang程序:陷阱和对策 #### 摘要与背景 在探讨编写分布式的Erlang程序时,本篇文章聚焦于Erlang编程语言中的分布式特性,尤其是那些容易忽视的陷阱及其对应的解决方案。Erlang作为一种专为构建...

    Erlang入门:构建application练习2

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。在本教程中,我们将深入探讨如何使用Erlang构建一个名为"Application"的基本应用程序,这在...

    erlang19安装包

    Erlang/OTP 19.1 is a service release containing mostly bug fixes, as well as a number of new features and characteristics improvements. Some highlights of the release are: erts: Improved dirty ...

    erlang-23.2.1-1.el7.x86-64.rpm

    Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ ...

    《Erlang之父:为什么面向对象很糟糕》PDF

    《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF

    erlang文献及资料汇总

    erlang文献及资料汇总 入门资料: erlang中文手册(R11B 文档译文,最适合入门) erlang位运算与二进制解析 erlang二进制高效编程 erlang异常处理详解 开发经验: 面对软件错误构建可靠的分布式系统 编写分布式的 ...

    Erlang:并行计算和云计算

    **Erlang: 并行计算与云计算** Erlang是一种动态类型的函数式编程语言,由爱立信在1986年为电话交换系统设计,后来因其在处理并发、分布式和容错性上的优秀特性,逐渐在并行计算和云计算领域崭露头角。 ### 1. ...

    erlang lib of iconv

    Erlang库中的iconv是一个用于字符编码转换的模块,它是Erlang编程语言与不同字符集之间交互的重要工具。Erlang是一种并发性极强、适合构建分布式系统的动态类型语言,而iconv库则提供了在Erlang环境中处理字符串编码...

    erlang最新api

    ### Erlang标准库(STDLIB)与I/O协议详解 #### 概述 Erlang是一种功能强大且灵活的编程语言,广泛应用于构建高并发、容错性良好的系统。其标准库(STDLIB)提供了丰富的函数集合以及一系列用于简化开发过程的工具。...

    Centos7安装RabbitMQ的文档和安装包(包含erlang安装包).rar

    RabbitMQ基于Erlang编程语言,因此在安装RabbitMQ之前,我们需要先安装Erlang环境。本文将涵盖以下几个关键知识点: 1. **Erlang安装**: Erlang是RabbitMQ的基础,因为RabbitMQ是用Erlang编写的。首先,我们需要...

    Erlang list用法

    Erlang是一种并发、分布式、面向进程的编程语言,广泛用于构建高可用性和容错性的系统。在Erlang中,列表是一种基本的数据结构,提供了丰富的操作函数。以下是对标题和描述中提到的Erlang列表函数的详细解释: 1. `...

    erlang programming

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在“erlang programming”这个主题下,我们可以深入探讨以下几个关键知识点: 1. **Erlang语言基础**:Erlang是瑞典...

    confetti, Erlang配置提供程序/应用程序.zip

    confetti, Erlang配置提供程序/应用程序 纸屑五彩纸屑是你的Erlang应用程序的配置提供程序。基本上是 application:get_env/2 在类固醇上。特性管理控制台可以通过telnet维护部门访问将为你 love在运行时重新加载( ...

    Erlang初学:Erlang的一些特点和个人理解总结

    Erlang语言是一种专为开发大规模并发应用设计的编程语言,它的诸多特点与传统的编程语言有显著不同。首先,Erlang是基于函数式编程范式的语言,这意味着它使用了数学中的函数概念,每个函数都有返回值,并且在Erlang...

    Programming-Paradigms-DD1361.Inet:实验室网络

    编程范式-DD1361.Inet Labb Inet:互联网/套接字 在这个实验室中,您将纠正和改进 ATM 程序。 要在实验室获得批准,您的程序必须有效、满足某些要求并记录在案。 该实验室的目的是研究面向 Internet 的编程,然后...

    Introducing Erlang: Getting Started in Functional Programming

    Introducing Erlang: Getting Started in Functional Programming by Simon St. Laurent English | 6 Mar. 2017 | ASIN: B06XHSP5SH | 212 Pages | AZW3 | 1.85 MB If you’re new to Erlang, its functional style...

    erlang tcp_server

    3. **inet模块**:Erlang的inet模块提供了与网络相关的功能,包括TCP套接字的创建、监听和连接操作。例如,`inet:listen/2`用于开启一个监听套接字,`inet:accept/1`用于接受新的连接。 4. **gen_tcp模块**:这个...

Global site tag (gtag.js) - Google Analytics