系统:FreeBSD4.4
Unix 网络编程 卷一源文件编译的问题解决完成后。运行 ./daytimetcpcli 127.0.0.1出现Connection refused.
于是网上找开放13端口的时间获取服务器,结果没有找到,索性自己开放自己的13端口试试。
运行netstat -an 没有发现13端口。
从网上了解时间服务器在inetd中,百度百科显示inet如下:
inetd是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。它可以为多种服务管理连接,当 inetd 接到连接时,它能够确定连接所需的程序,启动相应的进程,并把 socket 交给它 (服务 socket 会作为程序的标准输入、 输出和错误输出描述符)。 使用 inetd 来运行那些负载不重的服务有助于降低系统负载,因为它不需要为每个服务都启动独立的服务程序。
一般说来,inetd 主要用于启动其它服务程序,但它也有能力直接处理某些简单的服务,例如chargen、auth,以及daytime。inetd.conf则是inetd的配置文件。inetd.conf文件告诉inetd监听哪些网络端口,为每个端口启动哪个服务
于是打开/etc/inetd.conf找到跟daytime相关的服务字段
#daytime stream tcp nowait root internal
#daytime stream tcp6 nowait root internal
#daytime dgram udp wait root internal
#daytime dgram udp6 wait root internal
#time stream tcp nowait root internal
#time stream tcp6 nowait root internal
#time dgram udp wait root internal
#time dgram udp6 wait root internal
将第一个daytime前面的#注释符去掉 运行/etc/rc.d/inetd onerestart
运行 netstat -an | grep 13 显示
tcp4 0 0 *.13 *.* LISTEN
表明13号端口已经开启,并处于监听状态
然后再运行网络编程的 ./daytimetcpcli 127.0.0.1 将会成功显示时间

446

被折叠的 条评论
为什么被折叠?



