プログラミング Erlang 14.1

うーんオライリーと違ってソースを張っていいとは書いてないなぁ。
まずそうだったら消す。

簡単な gen_tcp:send の使い方。わかりやすい。

% vim: sw=4 sts=4

-module(socket_examples).
-export([nano_get_url/0]).

nano_get_url() ->
    nano_get_url("www.google.com").

nano_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))
    end.