On Thu, 2008-07-31 at 15:30 +0000, Jan Panteltje wrote:
> On a sunny day (Thu, 31 Jul 2008 07:56:07 -0700 (PDT)) it happened
> =?GB2312?B?0rvK18qr?= wrote in
> <37bb23c3-fb43-4d01-a1af-9aa5f7f7eb47@1g2000pre.googlegroups.com>:
>
> >Hi all,
> >
> >I am sorry if my question sounds very naive.
> >
> >My new job is writing a server application on Linux and my boss
> >strongly asked we write it with C to get better performance.
> >
> >Although he doesn't programming much himself, my boss has **read**
> >many books on software engineering so I can not persuade him that an
> >OO style language might save us lot of trouble.
> >
> >That's why I need a **good** example of network programming on C.

>
> Most of Linux stuff is open source, have a look at some applications
> that use a network.
> Like for example the good old IRC chat programs.
>
>
> >For some reason I have to use non-blocking IO. My problem is I don't
> >know the proper way to write a state machine that could change its
> >state when message received or a timer timeout.

>
> To ask the question in the right way, is also to have the answer.
> You are close, when timer times out change state variable :-)
>
> >Any books, projects, programming framework I could refer to ?

>
> You must absolutely read - and read again -, and use, libc.info.
> The gnu library also has many network examples, and describes each function
> in detail, likely aready on your system:
> ls -l /usr/share/info/libc.info*
> Unzip all files and cat together to one big textfile.
> Use a decent text editor (such a joe) to read it, and search for functions.


You can read it in HTML-form here too:
http://www.gnu.org/software/libc/man...e/Sockets.html

...and download it from here:
http://www.gnu.org/software/libc/manual/

...or use your distro package manager:

root@blackbox:~# aptitude install glibc-doc
....
....
lnostdal@blackbox:~$ dpkg -L glibc-doc | grep index.html
/usr/share/doc/glibc-doc/html/index.html
lnostdal@blackbox:~$ firefox /usr/share/doc/glibc-doc/html/index.html &

--
Lars Rune Nøstdal
http://nostdal.org/