最近愈发觉得在学习源代码或者看书的时候,做下读书笔记,不仅能加深印象和理解,同时也方便日后进行回顾,所以就写下UNP(UNIX网络编程)卷1的读书笔记,涉及到的代码基本都是原作者提供的,为了方便编译做了一定简化,我是在Ubuntu上进行编译的,不同操作系统可能存在兼容问题。
该书第一个小程序就是通过tcp从daytime服务器获取时间,代码如下:
运行时传递一个daytime服务器的ip地址即可,大家可以在自己的服务器上运行daytime服务进行测试
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#define MAXLINE 4096
void err_quit(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
char buf[MAXLINE + 1];
vsnprintf(buf, MAXLINE, fmt, ap);
strcat(buf, "\n");
fflush(stdout);
fputs(buf, stderr);
fflush(stderr);
exit(1);
}
int main(int argc, char **argv)
{
int sockfd, n;
char recvline[MAXLINE + 1];
struct sockaddr_in servaddr;
// 该程序需要接收1个参数, 该参数为daytime服务器的