[erlang-questions] Erlang C Communication - process completes but nodes are not connected

Gleber <>
Thu Jan 31 19:31:49 CET 2008


Hello.

This is my first post to this list, so i'm sorry for any mistakes :)

IIRC, C nodes are hidden nodes, hence net_adm:world() will not show
them. Use nodes(hidden). to list hidden nodes.

Regards,
Gleb Peregud

On 1/31/08, J Bhanot <> wrote:
> Hi,
>
> I am using C node as client
> []
>
> #include <stdio.h>
> #include <signal.h>
> #include<string.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #include <arpa/inet.h>
> #include <sys/fcntl.h>
>
> #include "erl_interface.h"
> #include "ei.h"
>
> #define PORT 6666
>
> int sockfd, epmdfd;
>
> main()
> {
>
> struct in_addr addr;
> erl_init(NULL, 0);
>
> printf("Initializing ...");
>         if(!erl_connect_init(69, "SFEWRG34AFDSGAFG35235", 0))
>                {
>                 printf("\nerror in initialisation");
>                 erl_err_sys("erl_connect_init");
>                 printf("\nafter error in init");
>                 }
>         printf(" done.\n");
>         printf("node=%s, host=%s, alive=%s, creation=%d\n ",
>                         erl_thisnodename(), erl_thishostname(),
>                         erl_thisalivename(), erl_thiscreation());
>
>
>
>
>     /*This is the short host name outgoing connect routine  */
>         printf("Connecting ...");
> usleep(5000);
> getchar(); //for checking
>         if((sockfd = erl_connect("")) < 0)
>
>       //  if((sockfd = erl_connect("")) < 0)
> {
>         printf("in error");
>         erl_err_sys("erl_connect");
> }
>         printf("\nsock = %d\n", sockfd);
>         erl_err_sys("erl_connect");
>         printf(" done.\n");
>
> }
>
> [/code]
>
> and Erlang node as server ''
>
> Steps to run Erlang node :
>
>
> erl -setcookie SFEWRG34AFDSGAFG35235 -name node1
> Created a file named $HOME/.hosts.erlang having contents as
> ''.
> ''.
>
>
> The output for c file upon execution is
>
> [ otp_src_R12B-0]# ./mytest
> Initializing ... done.
> node=, host=localhost, alive=c69, creation=0
>  Connecting ...
> sock = 3
> erl_connect: Success
>
>
> but at erlang node when i execute the command :
> ()8> net_adm:world().
>
> i get the output as :
> []
>
> similalry
>
> ()9> nodes().
> []
> ()10>
>
>
> That is no node is connected to it....
>
> Now the point is C node has successfully connected ....
>
> Why Erlang node is not showing it as connected....
>
> Do we need to register the C node with EPMD even when it is acting as a
> client...
>
> Do we need to register Erlang node with EPMD as well and if yes the how do
> we do that..
>
> Note : I am using putty to connect to single linux server (FC8).
>
> Appreciate your help...
>
> Many Thanks,
>
> jb
>
>
>
>
>
> ____________________________________________
> =====-----=====-----=====
> Notice: The information contained in this e-mail
> message and/or attachments to it may contain
> confidential or privileged information. If you are
> not the intended recipient, any dissemination, use,
> review, distribution, printing or copying of the
> information contained in this e-mail message
> and/or attachments to it are strictly prohibited. If
> you have received this communication in error,
> please notify us by reply e-mail or telephone and
> immediately and permanently delete the message
> and any attachments. Thank you
>
>
>


-- 
Gleb Peregud
http://gleber.pl/

"Only two things are infinite, the universe and human stupidity, and
I'm not sure about the former."
--  Albert Einstein



More information about the erlang-questions mailing list