hu's profile混吃等死滴高手PhotosBlogLists Tools Help

Blog


    September 15

    long node name问题

    试验Programming Erlang P180页Stage 3: Client and Server on Different Machines on the Same LAN
    erl -name server@vp.com -setcookie abc,-name是long node name, 对应-sname是short node name。
    注意-name 后面要跟xxx@yyy.com,@后面一定要域名格式,可以在hosts里面定义。不然会erl_crash
     
    但是有个问题,如果域名有数字还是会报错** 1: syntax error before: 3322 **不知为什么
    July 07

    俺的第一个erlang程序

    从mysql数据库读ip列表,然后检查特定端口是否打开
    -module(check).
    -export([main/0, check_sock/2, loop/0]).
    main() ->
        mysql:start_link(p1, "localhost", "root", "", "proxy"),
        {data,{mysql_result,_,Result,_,_}} = mysql:fetch(p1,"select distinct(ip) from lists where date(created_at) = date(now())"),
        spawn(check, loop, []), % new a receive process
        lists:map(fun do_test/1, Result).
     
    do_test([Ip]) ->
        spawn(readline, test_sock, [Ip,self()]).
     
    loop() ->
        receive
            {ip, Ip} ->
                io:format("write a ~s~n", [Ip])
        end.

    check_sock(Ip,Pid) ->
            case gen_tcp:connect(Ip, 3333, [binary, {active, false}], 3000) of
                    {ok, Sock} ->
                            %io:fwrite("~s~n", [Ip]),
                            Pid ! {ip,Ip};
                    {error, Reson} ->
                            io:fwrite("", [Reson])
            end.