UNIX网络编程_1
一个简单的时间获取客户程序
本系统: Debian 12
如何下载源码并编译运行
官方源码地址:https://github.com/unpbook/unpv13e
git clone https://github.com/unpbook/unpv13e.git
克隆到本地之后,根据README文件一步一步make配置
接下来可以直接 make 想要运行的源码
然后执行即可
一个问题:如何使用gcc来编译官方的源码
首先把生成的静态库libudp.a 复制到系统依赖文件夹中
1
2
3cd .. //回到unpv13e目录
sudo cp libunp.a /usr/lib
sudo cp libunp.a /usr/lib64然后修改unp.h并将其和config.h拷贝到/usr/include中,为了以后include方便
1
2
3gedit lib/unp.h //将unp.h中#include "../config.h"修改为#include "config.h"
sudo cp lib/unp.h /usr/include
sudo cp config.h /usr/include然后就可以愉快的编译了:
1
2cd ./intro
gcc daytimetcpcli.c -o daytimetcpcli -lunp // 链接unp库同理,如果想要自己重新另建一个文件夹来编译运行的话
首先要完成上面的步骤:静态库和头文件的拷贝
然后就可以使用
gcc daytimetcpcli.c -o daytimetcpcli -lunp
来运行了另一个问题:如何使用两台主机测试
这里我使用的是阿里云服务器
**关键就是你要在安全组里开放13端口(时间服务器端口),而不是进程的端口号 **
这里测试的话你可以使用下面命令
1
2ping ipadress # 使用ping命令测试本地主机能否连接服务器
telnet ipaddress 13 # 使用telnet命令测试服务器端口是否正常开启你可以在云服务器中使用下面命令来开放监听端口
1
sudo ./daytimetcpsrv &
然后在本地主机上使用下面命令来测试
1
./daytimetcpcli ipaddress # 这里替换为云服务器的ip地址
参考