This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: networking on eCos


On Sat, Oct 29, 2005 at 11:46:42AM +0200, gerardo.rossi@studenti.univr.it wrote:
> Hello there,
> again that 2 italian students  with some problems about eCos...
> 
> We have 2 applications that use sockets, 1 transmitter that runs on
> eCos transmitting data on port 2000 and 1 receiver(non-eCos
> application) that reads data on the same port(all that on localhost
> momentarily).


OK. First off i suggest you visit the library and find a book on
TCP/IP socket programs. Your questions 


Next, you have a misunderstanding about what localhost is.  127.0.0.1
is local to the current TCP/IP stack. On your setup you have two
stacks running. You have the stack in eCos and the stack in
Linux. These have different localhosts. So anything you send to
localhost in eCos will only be received by socket code listening in
eCos. Anything you send to localhost in your Linux host will only be
received by socket code on that linux host. You cannot do any
communication between an eCos program and Linux programs this way.

To get eCos and Linux talking to each other you have to use proper IP
addresses. You should take a look at this URL which talked about the
synthetic ethernet driver:

http://ecos.sourceware.org/docs-latest/ref/devs-eth-synth-ecosynth.html

and

http://ecos.sourceware.org/docs-latest/ref/hal-synth-arch.html

which talked about the synthetic target in general...

> 1) Using the function gethostbyname() we have our error-message:
> 
> "Unable to find host 127.0.0.1" but we resolve this introducing
> "init_all_network_interfaces()" and setting CYGDAT_NS_DNS_DEFAULT_SERVER via
> configtool with our dns-ip, but this function is so slow and we try to use
> "cyg_dns_res_init(struct in_addr *dns_server)".
> Can you help we about what we have to pass to this function? Which are the
> field-types of this structure?

You don't normally pass dot addresses to gethostby name. It will
probably work, but it is better to use inet_aton().

Next, you say it is talking a long time. This probably indicates it is
not even talking to your DNS server. Once you get eCos's network
working using the synthetic ethernet driver i expect this will execute
much faster.

> ...
> hp=(struct hostent *)gethostbyname(cyg_hal_sys_argv[1]);
> ...

> 3) For last(please!)
> 

> The full set of arguments can be accessed through the variables
> cyg_hal_sys_argc and cyg_hal_sys_argv, but which function we have to
> pass them? Which header we have to include? And how we have to pass
> our arguments to the application?  Thanks a lot and excuse to us for
> our bad english.

cyg_hal_sys_argc is just like argc of main(). cyg_hal_sys_argv is just
like argv of main(). Just like any ANSI program.

To uses these variables you should include <cyg/hal/hal_io.h>.

        Andrew

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]