?

Log in

No account? Create an account

Previous Entry | Next Entry

В связи с тем, что в мою институтскую программу входило освоение одного из функциональных языков, а именно Эрланга, мне пришлось на нём что-то писать.

Я столкнулся с интересной и глупой проблемой: как передать по сети два целочисленных знаковых числа.
Возможно, никакая это не проблема и вызвана у меня она была лишь непониманием функциониования функциональных языков (простите за тавтологию), но всё же я с ней столкнулся.

Итак, как всегда, солюшн:

Я не буду вдаваться в подробности установки соединения и тп организационные вещи.
Скажу лишь то, что тип сокета должен быть бинарный (binary).

Теперь функции посылки и приёма соответственно:

send(Sock, N_one, N_two) ->
    D = {N_one, N_two},
    case gen_tcp:send(Sock, erlang:term_to_binary(D)) of
    ok -> ok;
    {error, _} -> error
    end.

recv(Sock) ->
    {R, D} = gen_tcp:recv(Sock, 0),
    if
    R == ok -> {N_one, N_two} = erlang:binary_to_term(D), {ok, {N_one, N_two}};
    R == error -> {error, {0, 0}}
    end.


Прошу, прощения, что парсю результаты if'ами и case'ами, а не матч-функциями, но, видимо, влияние алгоритмических языков на мой мозг крайне велико :)

Comments

( 4 comments — Leave a comment )
__matthias
Dec. 28th, 2007 01:10 pm (UTC)
ща фигню спрошу
А как ты расцвечиваешь текст? неужели руками ( =хтмлными тегами)? Или есть какая-то тулза, которая может генерить хтмлный код с подсветкой синтаксиса?

кстати, в слове "хтмлный" - 5 согласных подряд
bugubudji
Dec. 28th, 2007 02:44 pm (UTC)
Ага... /dev/hands мне текст расцвечивают...
Тулзы нету... Наверное...

Про 5 согласных -- это точно не сюда :)
Odobenus Rosmarus (rosmarus) [blogspot.com]
Mar. 6th, 2008 03:05 am (UTC)
Если надо просто передать по сети, почему не

pid ! {num1,num2}

monkey_write
Sep. 14th, 2011 08:47 am (UTC)
Читай сетевое взаимодействие между процессами erlang, magic cookie, ноды, хосты( и в сделаешь pid ! {num1,num2} )а также модуль rpс можно заодн о
( 4 comments — Leave a comment )

Profile

nanomachine
nanomachines
nanomachines

Latest Month

March 2012
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031
Powered by LiveJournal.com
Designed by Tiffany Chow