Unix网络编程:从入门到放弃——一个简单的时间获取程序
2017-04-03 16:56
197 查看
《Unix网络编程》两卷备受赞誉,另外四本传世经典《TCP/IP详解》(3卷)和《Unix环境高级编程》更是让W.Richard Stevens如同神一般的存在。最近入手了其中两本《Unix网络编程》准备开启网络编程的学习之旅。
书本配套源码地址:http://www.unpbook.com/src.html
编译环境:Ubuntu16.04-64
首先解压源文件,打开主文件夹下README文件,上面有源代码编译步骤。
在终端用tree -L 1看一下源码的结构:
.
├── aclocal.m4
├── advio
├── bcast
├── config.guess
├── config.h
├── config.h.in
├── config.log
├── config.status
├── config.sub
├── configure
├── configure.in
├── debug
├── DISCLAIMER
├── icmpd
├── inetd
├── install-sh
├── intro
├── ioctl
├── ipopts
├── key
├── lib
├── libfree
├── libgai
├── libroute
├── libunp.a
├── Make.defines
├── Make.defines.in
├── Makefile
├── Makefile.in
├── mcast
├── mysdr
├── names
├── nonblock
├── oob
├── ping
├── README
├── route
├── rtt
├── sctp
├── select
├── server
├── sigio
├── sock
├── sockopt
├── sparc64-unknown-freebsd5.1
├── ssntp
├── streams
├── tcpcliserv
├── test
├── threads
├── traceroute
├── udpcksum
├── udpcliserv
├── unixdomain
└── VERSION
首先执行./configure进行整体配置,再进入lib目录执行make命令即可,中间的三步分别进入libfree/libroute/libxti执行make可以省略,最后进入intro文件夹执行make daytimetcpcli命令,若直接执行./daytimetcpcli 127.0.0.1会出现:
connect error: Connection refused的错误。因为linux系统默认关闭daytime服务,所以需要手动开启。
再次用tree命令查看intro文件夹文件结构:
.
├── byteorder
├── byteorder.c
├── byteorder.o
├── daytimetcpcli
├── daytimetcpcli1
├── daytimetcpcli1.c
├── daytimetcpcli1.o
├── daytimetcpcli2
├── daytimetcpcli2.c
├── daytimetcpcli2.o
├── daytimetcpcli3
├── daytimetcpcli3.c
├── daytimetcpcli3.o
├── daytimetcpcli.c
├── daytimetcpcli.o
├── daytimetcpcliv6
├── daytimetcpcliv6.c
├── daytimetcpcliv6.o
├── daytimetcpsrv
├── daytimetcpsrv1
├── daytimetcpsrv1.c
├── daytimetcpsrv1.o
├── daytimetcpsrv2
├── daytimetcpsrv2.c
├── daytimetcpsrv2.o
├── daytimetcpsrv3
├── daytimetcpsrv3.c
├── daytimetcpsrv3.o
├── daytimetcpsrv.c
├── daytimetcpsrv.lc
├── daytimetcpsrv.o
├── daytimetcpsrvv6
├── daytimetcpsrvv6.c
├── daytimetcpsrvv6.o
├── Makefile
├── truss.solaris.2.6
└── truss.unixware.2.1
在intro文件夹下重现开启一个终端,执行sudo ./daytimetcpsrv即可打开daytime服务。
此时,在原终端再次执行./daytimetcpcli 127.0.0.1,可以返回系统当前时间:
Mon Apr 3 16:52:13 2017
书本配套源码地址:http://www.unpbook.com/src.html
编译环境:Ubuntu16.04-64
首先解压源文件,打开主文件夹下README文件,上面有源代码编译步骤。
=============== Execute the following from the src/ directory: ./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 ../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 If all that works, you're all set to start compiling individual programs. Notice that all the source code assumes tabs every 4 columns, not 8. MORE DETAILS ============
在终端用tree -L 1看一下源码的结构:
.
├── aclocal.m4
├── advio
├── bcast
├── config.guess
├── config.h
├── config.h.in
├── config.log
├── config.status
├── config.sub
├── configure
├── configure.in
├── debug
├── DISCLAIMER
├── icmpd
├── inetd
├── install-sh
├── intro
├── ioctl
├── ipopts
├── key
├── lib
├── libfree
├── libgai
├── libroute
├── libunp.a
├── Make.defines
├── Make.defines.in
├── Makefile
├── Makefile.in
├── mcast
├── mysdr
├── names
├── nonblock
├── oob
├── ping
├── README
├── route
├── rtt
├── sctp
├── select
├── server
├── sigio
├── sock
├── sockopt
├── sparc64-unknown-freebsd5.1
├── ssntp
├── streams
├── tcpcliserv
├── test
├── threads
├── traceroute
├── udpcksum
├── udpcliserv
├── unixdomain
└── VERSION
首先执行./configure进行整体配置,再进入lib目录执行make命令即可,中间的三步分别进入libfree/libroute/libxti执行make可以省略,最后进入intro文件夹执行make daytimetcpcli命令,若直接执行./daytimetcpcli 127.0.0.1会出现:
connect error: Connection refused的错误。因为linux系统默认关闭daytime服务,所以需要手动开启。
再次用tree命令查看intro文件夹文件结构:
.
├── byteorder
├── byteorder.c
├── byteorder.o
├── daytimetcpcli
├── daytimetcpcli1
├── daytimetcpcli1.c
├── daytimetcpcli1.o
├── daytimetcpcli2
├── daytimetcpcli2.c
├── daytimetcpcli2.o
├── daytimetcpcli3
├── daytimetcpcli3.c
├── daytimetcpcli3.o
├── daytimetcpcli.c
├── daytimetcpcli.o
├── daytimetcpcliv6
├── daytimetcpcliv6.c
├── daytimetcpcliv6.o
├── daytimetcpsrv
├── daytimetcpsrv1
├── daytimetcpsrv1.c
├── daytimetcpsrv1.o
├── daytimetcpsrv2
├── daytimetcpsrv2.c
├── daytimetcpsrv2.o
├── daytimetcpsrv3
├── daytimetcpsrv3.c
├── daytimetcpsrv3.o
├── daytimetcpsrv.c
├── daytimetcpsrv.lc
├── daytimetcpsrv.o
├── daytimetcpsrvv6
├── daytimetcpsrvv6.c
├── daytimetcpsrvv6.o
├── Makefile
├── truss.solaris.2.6
└── truss.unixware.2.1
在intro文件夹下重现开启一个终端,执行sudo ./daytimetcpsrv即可打开daytime服务。
此时,在原终端再次执行./daytimetcpcli 127.0.0.1,可以返回系统当前时间:
Mon Apr 3 16:52:13 2017
相关文章推荐
- UNIX网络编程笔记(2):一个简单的时间获取程序
- UNIX网络编程 -- -- 一个简单的时间获取客户程序
- UNIX网络编程1.5一个简单的时间获取服务器程序1.6客户服务器程序索引表
- 一个简单的时间获取客户端程序
- 一个简单的时间获取客户程序
- 简介(1)-概述、一个简单的时间获取客户程序
- 一个简单的TCP 客户端时间获取程序 ipv4/ipv6
- 1.2 一个简单的时间获取客户程序
- Unix网络编程(卷一)-第一个简单的时间获取程序
- 《UNIX网络编程》第一章——一个简单的时间获取客户端/服务器程序
- 一个简单的TCP客户端时间获取程序
- 简单的时间获取程序-unix网络编程
- [Mule学习]入门:写一个最简单的小程序ZT
- 一个简单的获取百度贴吧上ID的java程序
- 简单小程序获取显示当前时间
- Qt入门-构建一个简单的窗体程序
- 一个简单的Android入门程序
- 一个简单入门的win32 socket程序
- Linux下计算程序运行时间的一个简单方法
- Lex和Yacc从入门到精通(3)--一个极其简单的lex和yacc程序