`

Erlang--TCP学习(一)Client篇

阅读更多
  gen_tcp:connect(Host,Port,[Options]),gen_tcp:send(Socket, Request)。用这个两个函数从服务器获取数据
  代码如下:tcp_client.erl
-module(tcp_client).

-export([get_url/0]).

get_url() ->
    get_url("www.baidu.com").

get_url(Host) ->
    {ok, Socket} = gen_tcp:connect(Host, 80, [binary, {packet, 0}]),
    ok = gen_tcp:send(Socket, "GET / HTTP/1.0\r\n\r\n"),
    receive_data(Socket, []).

receive_data(Socket, SoFar) ->
    receive
        {tcp, Socket, Bin} ->
              receive_data(Socket, [Bin|SoFar]);
        {tcp_closed, Socket} ->
              list_to_binary(lists:reverse(SoFar));
          R ->
              io_lib:format("error msg receive ~s",[R])
    end.


编译和运行:
erlc tcp_client.erl
erl
B = tcp_client:get_url(),
io:format("~p~n",[B]).
string:tokens(binary_to_list(B), "\r\n").
分享到:
评论

相关推荐

    tcp_client:一个Erlang TCP客户端连接管理器

    - `tcp_client-master`可能包含源代码文件,如`.erl`文件,用于实现TCP客户端功能。 - 可能还有测试用例文件`.eunit`或`.ct`,用于验证和测试客户端的正确性。 - 配置文件可能定义了连接池大小、超时设置等参数。...

    基于Erlang的gen_tcp聊天室代码,功能完整

    总的来说,这个基于Erlang的gen_tcp聊天室项目是学习并发编程和网络通信的良好实践。通过阅读和分析源代码,我们可以深入理解Erlang的并发特性、gen_tcp的使用方法,以及如何构建分布式、实时的聊天应用。

    erlang学习1.pdf

    ### Erlang学习知识点 #### 一、Erlang简介与安装 - **Erlang**是一种通用、并发、函数式编程语言,适用于构建高可用性系统。它在电信行业有广泛应用,同时也被用于互联网服务、分布式计算等领域。 - **安装步骤**...

    erlang学习2.pdf

    本篇将围绕文档中的核心知识点进行深入解读,主要包括:构建一个简单的HelloServer、Table的并发消息机制、Table的简化版Server以及TCP Server的设计与实现。 #### 二、HelloServer实例 文档首先介绍了一个简单的...

    使用OTP原理构建一个非阻塞的TCP服务器

    在本文中,我们将探讨如何使用Erlang的OTP(Open Telecom Platform)原则构建一个非阻塞的TCP服务器。OTP为开发健壮、容错的应用提供了强大的框架,它包含了一系列行为模式,如gen_server和gen_fsm,这些模式可以...

    RabbitMQ包以及依赖包

    总之,RabbitMQ作为一款强大的消息中间件,提供了可靠的异步通信解决方案,而Erlang、SOCAT和RabbitMQ服务器的组合是实现这一功能的基础。正确安装和配置这些组件是确保RabbitMQ正常运行的关键。

    erlang高性能网络库esockd的编译和使用(三)

    `{socket, gen_tcp}`表示我们使用gen_tcp作为底层协议,`{active, once}`则意味着Erlang进程将只接收一次来自socket的数据,之后需要手动调用`esockd:recv/2`或`esockd:recv/3`来接收更多数据。 对于服务器端,我们...

    erlang 聊天室源码

    4. **实时通信**:为了实现实时交互,可以使用Erlang的TCP/UDP套接字接口进行网络通信,或者利用Erlang的Websocket库,如`gun`或`websocket_client_server`。 5. **rabbitMQ灵感**:既然项目参考了rabbitMQ,那么...

    自己写一个tcp 通用服务器

    本篇将基于提供的标题“自己写一个tcp 通用服务器”来深入探讨如何创建一个自定义的TCP服务器,并结合描述中的博文链接和标签“源码 工具”,我们将分析提供的源码文件。 首先,让我们了解TCP服务器的基本工作原理...

    Tsung负载测试tigase

    <client host="localhost" use_controller_vm="true" maxusers="10000"></client> <!-- 服务器端配置 --> <server host="192.168.3.242" port="5222" type="tcp"> <!-- 负载配置 --> ...

    Erlang中的socket编程简单例子

    在Erlang中实现TCP服务器的基础是一个循环,该循环不断地等待新的连接。可以使用gen_tcp:listen/2函数来启动监听一个特定端口的服务,并返回一个监听socket。一旦有新的连接请求,可以使用gen_tcp:accept/1来接受...

    hackney:Erlang中的简单HTTP客户端

    - **erlang**:Erlang是一种面向并发的、函数式编程语言,常用于构建高可用性、分布式系统,尤其适合处理大量并发连接和实时性需求。 - **HTTPErlang**:可能是指Erlang中的HTTP相关库或工具,强调了这个客户端是用...

    tinyconnect-backend:用于中继串行端口<>用于Tiny Mesh Cloud的TCP的通信后端”

    尽管这是当前使用此方法的唯一方法,但应将其视为传统方法,并且应假定将来通信传输可以在任何基于消息的协议(例如erlang-distribution,zmq或类似协议)上运行。 所有事件都是一样的 术语 client -表示串行端口的...

    Erlang的MQTT客户端emqttc.zip

    emqttc 是一个 Erlang 的 MQTT 客户端,支持 MQTT V3.1/V3.1.1 协议规范。支持并行连接和连接自动恢复。要求 Erlang R17 .特性:支持 MQTT V3.1/V3.1.1 协议QoS0, QoS1, QoS2 发布和订阅TCP/SSL Socket 支持自动重连...

    brod:适用于ErlangElixir的Apache Kafka客户端库

    特征支持Apache Kafka v0.8 + 可靠的生产者实现,支持运行中的请求和异步确认消费者和生产者都可以在内部处理领导者连任和其他集群干扰每个brod_client最多打开1个TCP连接到一个代理,如果需要,一个代理可以创建更...

    MySQL Erlang client:ErlMySQL是用Erlang编写MySQL客户端(驱动程序)。-开源

    ErlMySQL是用Erlang编写MySQL客户端,提供的API非常接近Connector / C库。 客户端正在使用与MySQL服务器的低级(TCP / IP套接字)连接,并允许以最大可能的速度交换数据。 客户端中封装了多个数据源支持和连接池,...

    rcp-client:rcp-客户端-内部

    在"rcp-client-master"这个项目中,我们可以预见到一个使用Erlang实现的RCP客户端示例,可能包含了客户端的接口设计、请求的序列化与反序列化逻辑、错误处理策略以及与Erlang OTP框架的集成。通过研究该项目的源代码...

    openstack-HA部署

    部署过程主要包括安装Rabbitmq-server、导入集群中的cookie(cookie位置:/var/lib/rabbitmq/.erlang.cookie)、加入集群(在一个节点上操作即可)、改变节点类型、检查集群状态以及配置镜像模式等步骤。 3. Mysql/...

    ckle锁:高性能Erlang网络客户端框架

    总结来说,`ckle锁`,即Shackle,是一个基于Erlang的高性能网络客户端框架,它支持TCP和UDP,内置SSL/TLS,提供了高效的并发处理和连接池管理,是构建大规模并发网络应用的理想选择。通过深入理解和使用Shackle,...

    枪:用于ErlangOTP的HTTP1.1,HTTP2和Websocket客户端

    Erlang是一种并发性极强的编程语言,OTP(Open Telecom Platform)是其生态系统的一部分,提供了可靠的服务和进程管理框架。Gun在Erlang环境中为开发者提供了高效、稳定且功能丰富的网络通信工具。 Gun支持以下...

Global site tag (gtag.js) - Google Analytics