<br><font size=2 face="sans-serif">thanks Gleb...</font>
<br>
<br><font size=2 face="sans-serif">I had to publish my C node and then
it was being shown in Erlang node by executing this command:</font>
<br>
<br><font size=2><tt>nodes(hidden).</tt></font>
<br>
<br><font size=2 face="sans-serif">but now when i want it to accept connection
- I have added following code..</font>
<br>
<br><font size=2 face="sans-serif">memset((char *) &remote, 0, sizeof(remote));</font>
<br><font size=2 face="sans-serif">if(erl_accept(sockfd, &remote) ==
ERL_ERROR)</font>
<br><font size=2 face="sans-serif">erl_err_sys("accept");</font>
<br>
<br>
<br><font size=2 face="sans-serif">where remote is declared at the top
as</font>
<br>
<br><font size=2 face="sans-serif">ErlConnect remote;</font>
<br>
<br><font size=2 face="sans-serif">and sockfd is the same socket which
I have used in connecting to Erlang node, binding/listening and have made
this port as non blocking as well</font>
<br>
<br><font size=2 face="sans-serif">but now when I execute code for C node..</font>
<br>
<br><font size=2 face="sans-serif">I am getting following error:</font>
<br>
<br><font size=2 face="sans-serif"><b>accept: Bad file descriptor</b></font>
<br>
<br><font size=2 face="sans-serif">Any ideas on that..</font>
<br>
<br><font size=2 face="sans-serif">Regards,</font>
<br><font size=2 face="sans-serif">jb</font>
<br><font size=2 face="sans-serif"><br>
____________________________________________</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Gleber <gleber.p@gmail.com></b>
</font>
<p><font size=1 face="sans-serif">02/01/2008 12:01 AM</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">"J Bhanot" <j.bhanot@tcs.com>,
erlang-questions@erlang.org</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: [erlang-questions] Erlang C Communication
- process completes but nodes are not connected</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2><tt>Hello.<br>
<br>
This is my first post to this list, so i'm sorry for any mistakes :)<br>
<br>
IIRC, C nodes are hidden nodes, hence net_adm:world() will not show<br>
them. Use nodes(hidden). to list hidden nodes.<br>
<br>
Regards,<br>
Gleb Peregud<br>
<br>
On 1/31/08, J Bhanot <j.bhanot@tcs.com> wrote:<br>
> Hi,<br>
><br>
> I am using C node as client<br>
> []<br>
><br>
> #include <stdio.h><br>
> #include <signal.h><br>
> #include<string.h><br>
> #include <sys/socket.h><br>
> #include <netinet/in.h><br>
> #include <arpa/inet.h><br>
> #include <sys/fcntl.h><br>
><br>
> #include "erl_interface.h"<br>
> #include "ei.h"<br>
><br>
> #define PORT 6666<br>
><br>
> int sockfd, epmdfd;<br>
><br>
> main()<br>
> {<br>
><br>
> struct in_addr addr;<br>
> erl_init(NULL, 0);<br>
><br>
> printf("Initializing ...");<br>
>         if(!erl_connect_init(69, "SFEWRG34AFDSGAFG35235",
0))<br>
>                {<br>
>                 printf("\nerror
in initialisation");<br>
>                 erl_err_sys("erl_connect_init");<br>
>                 printf("\nafter
error in init");<br>
>                 }<br>
>         printf(" done.\n");<br>
>         printf("node=%s, host=%s, alive=%s,
creation=%d\n ",<br>
>                    
    erl_thisnodename(), erl_thishostname(),<br>
>                    
    erl_thisalivename(), erl_thiscreation());<br>
><br>
><br>
><br>
><br>
>     /*This is the short host name outgoing connect routine
 */<br>
>         printf("Connecting ...");<br>
> usleep(5000);<br>
> getchar(); //for checking<br>
>         if((sockfd = erl_connect("node1@localhost.localdomain"))
< 0)<br>
><br>
>       //  if((sockfd = erl_connect(""))
< 0)<br>
> {<br>
>         printf("in error");<br>
>         erl_err_sys("erl_connect");<br>
> }<br>
>         printf("\nsock = %d\n", sockfd);<br>
>         erl_err_sys("erl_connect");<br>
>         printf(" done.\n");<br>
><br>
> }<br>
><br>
> [/code]<br>
><br>
> and Erlang node as server 'node1@localhost.localdomain'<br>
><br>
> Steps to run Erlang node :<br>
><br>
><br>
> erl -setcookie SFEWRG34AFDSGAFG35235 -name node1<br>
> Created a file named $HOME/.hosts.erlang having contents as<br>
> 'node1@localhost.localdomain'.<br>
> 'c69@localhost.localdomain'.<br>
><br>
><br>
> The output for c file upon execution is<br>
><br>
> [root@localhost otp_src_R12B-0]# ./mytest<br>
> Initializing ... done.<br>
> node=c69@localhost, host=localhost, alive=c69, creation=0<br>
>  Connecting ...<br>
> sock = 3<br>
> erl_connect: Success<br>
><br>
><br>
> but at erlang node when i execute the command :<br>
> (node1@localhost.localdomain)8> net_adm:world().<br>
><br>
> i get the output as :<br>
> []<br>
><br>
> similalry<br>
><br>
> (node1@localhost.localdomain)9> nodes().<br>
> []<br>
> (node1@localhost.localdomain)10><br>
><br>
><br>
> That is no node is connected to it....<br>
><br>
> Now the point is C node has successfully connected ....<br>
><br>
> Why Erlang node is not showing it as connected....<br>
><br>
> Do we need to register the C node with EPMD even when it is acting
as a<br>
> client...<br>
><br>
> Do we need to register Erlang node with EPMD as well and if yes the
how do<br>
> we do that..<br>
><br>
> Note : I am using putty to connect to single linux server (FC8).<br>
><br>
> Appreciate your help...<br>
><br>
> Many Thanks,<br>
><br>
> jb<br>
><br>
><br>
><br>
><br>
><br>
> ____________________________________________<br>
> =====-----=====-----=====<br>
> Notice: The information contained in this e-mail<br>
> message and/or attachments to it may contain<br>
> confidential or privileged information. If you are<br>
> not the intended recipient, any dissemination, use,<br>
> review, distribution, printing or copying of the<br>
> information contained in this e-mail message<br>
> and/or attachments to it are strictly prohibited. If<br>
> you have received this communication in error,<br>
> please notify us by reply e-mail or telephone and<br>
> immediately and permanently delete the message<br>
> and any attachments. Thank you<br>
><br>
><br>
><br>
<br>
<br>
-- <br>
Gleb Peregud<br>
http://gleber.pl/<br>
<br>
"Only two things are infinite, the universe and human stupidity, and<br>
I'm not sure about the former."<br>
--  Albert Einstein<br>
</tt></font>
<br><font size=1 color=white face="sans-serif">ForwardSourceID:NT0000E136
   </font>
<br><pre>=====-----=====-----=====
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


</pre>