Date: Fri, 29 Dec 2006 12:19:17 -0500 From: Chuck Swiger <cswiger@mac.com> To: linux quest <linuxquest7570@yahoo.com> Cc: FreeBSD-questions@FreeBSD.org Subject: Re: How to compile first network program? E.g. to PING google.com Message-ID: <45954E15.1020708@mac.com> In-Reply-To: <978214.91301.qm@web59208.mail.re1.yahoo.com> References: <978214.91301.qm@web59208.mail.re1.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
linux quest wrote: [ ... ] Notice: steep learning curve ahead. I suggest you clarify what you want to do and what problems you are trying to solve; learning how to write simple code in C comes before learning how to write network code in C and learning how to work in Unix is a separate issue entirely. > So, my question is ... > > 1. How can I write a very simple C network program ... to lets say I wanted to ping google.com ??? A minimal program would involve the system() call to run the existing ping program directly: > % cat ping_google.c > #include <stdlib.h> > > int main(int argc, char *argv[]) > { > int ping_failed; > > ping_failed = system("/sbin/ping -oq google.com > /dev/null"); > if (ping_failed) { > puts("\nPinging google.com failed!\n"); > } else { > puts("\nPinging google.com succeeded.\n"); > } > } > % cc -o pg ping_google.c > % ./pg > > Pinging google.com succeeded. ...for a more complete implementation, something which allocates its own sockets and deals with the network itself, look at /usr/src/sbin/ping/ping.c; it's about 1700 lines long. However, it would be possible to write something much smaller using libnet, for example. > 2. Which directory / location in UNIX should I go to? Most people create a location under their home directory called "Projects" or "Workareas", or something similar, and create and work on their stuff in a subdirectory under there. > 3. How do I compile and execute the simple C network program - lets say doing a ping on google.com??? For trivial cases, using "cc" directly. For more complex programs, most people use Makefiles. -- -Chuck
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45954E15.1020708>