Erlang--TCP学习(一)Client篇

本文介绍了如何使用Erlang的gen_tcp模块从服务器获取数据,包括连接服务器、发送请求及接收响应的过程。通过具体代码示例展示了实现这一功能的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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").
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值