http://my.chinaunix.net/space.php?uid=25795468&do=blog&id=296771 cd lib # build the basic library that all programs need make # use "gmake" everywhere on BSD/OS systems cd <some-directory-of-your-choosing> gunzip -c unpv12e.tar.gz | tar -xvf - cd unpv12e ./configure # try to figure out all implementation differences cd lib # build the basic library that all programs need make # use "gmake" everywhere on BSD/OS systems cd ../libfree # continue building the basic library make cd ../libgai # the getaddrinfo() and getnameinfo() functions make cd ../libroute # only if your system supports 4.4BSD style routing sockets make # only if your system supports 4.4BSD style routing sockets cd ../libxti # only if your system supports XTI make # only if your system supports XTI cd ../intro # build and test a basic client program make daytimetcpcli ./daytimetcpcli 127.0.0.1"Unix Network Programming" is one of the most classic book in computer science, I plan to read it these days, but there are some issues I encountered when I tried to running the first sample code in this book.
1. The source code can be downloaded from
2. The following is the Read Me / Configure file:
cd <some-directory-of-your-choosing>
gunzip -c unpv12e.tar.gz | tar -xvf -
cd unpv12e
./configure # try to figure out all implementation differences
cd lib # build the basic library that all programs need
make # use "gmake" everywhere on BSD/OS systems
cd ../libfree # continue building the basic library
make
cd ../libgai # the getaddrinfo() and getnameinfo() functions
make
cd ../libroute # only if your system supports 4.4BSD style routing sockets
make # only if your system supports 4.4BSD style routing sockets
cd ../libxti # only if your system supports XTI
make # only if your system supports XTI
cd ../intro # build and test a basic client program
make daytimetcpcli
./daytimetcpcli 127.0.0.1
3. Execute ./configure
The Terminal will show an error: struct_in_pktinfo is redefined.
The is because the struct in_pktinfo is already defined by system, so we have to comment the struct_in_pktinfo code in unp.h
4.
cd lib # build the basic library that all programs need
make # use "gmake" everywhere on BSD/OS systems
get_rtaddrs.c: In function ‘get_rtaddrs’:
ref to stack flow article: http://stackoverflow.com/questions/1520649/what-package-do-i-need-to-install-for-using-routing-sockets
copy if_dl.h to /usr/include/net
5.
get_rtaddrs.c:21:18: error: ‘RTAX_MAX’ undeclared (first use in this function)
get_rtaddrs.c:21:18: note: each undeclared identifier is reported only once for each function it appears in
get_rtaddrs.c:24:4: error: ‘struct sockaddr’ has no member named ‘sa_len’
get_rtaddrs.c:24:4: error: ‘struct sockaddr’ has no member named ‘sa_len’
get_rtaddrs.c:24:4: error: ‘struct sockaddr’ has no member named ‘sa_len’
get_rtaddrs.c:24:4: error: ‘struct sockaddr’ has no member named ‘sa_len’
See this document:
http://my.chinaunix.net/space.php?uid=25795468&do=blog&id=296771
-----------------------------------------------------
Silence, the way to avoid many problems;
Smile, the way to solve many problems;