On Sat, Oct 29, 2005 at 11:46:42AM +0200, [EMAIL PROTECTED] 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
