本书面向对象:编写的程序能使用称为 套接字(socket)的API进行彼此通信的人
每一张操作系统提供了大量的网络应用 程序: 网页浏览器、电子邮件客户端、文件共享服务器。
按照常规的划分方法把这些应用程序分为客户程序和服务器程序。
通过本书,我能够理解很多相应的例子。 常见的例子: web服务器是一个长时间运行的程序 daemon,他只响应来自网络请求时才发送网络消息。 协议的另一端是Web客户程序, 如浏览器。
第一章
理解网络应用:
客户---》服务器
一起服务器可以服务多个客户。
并且知道了客户与服务器使用CP在同一个以太网中通信
图:1.3
图1.4 正常互联网下的客户和服务器通信方式
1:了解了时间获取的客户程序
#include "unp.h"
int main(int argc , char **argv)
{
int sockfd, n;
char recvline[50+1]; // MAXLINE
struct sockaddr_in servaddr;
if (argc != 2)
{
err_quit("usage a. address");
}
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
err_sys("sock error");
}
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port=htoms(13); // daytime server
if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
{
err_quit("inet_pton error for %s", argv[1]);
}
if (connect(sockfd, (SA*) &servaddr, sizeof(servaddr)) <0)
{
err_sys("connect error");
}
while( (n = read(sockfd, recvline, MAXLINE)) > 0)
{
recvline[n]=0;
if (fputs(recvline, stdout)==EOF)
{
err_sys("fputs error");
}
}
if (n<0)
err_sys("read error");
exit(0);
}
函数的精要写一遍能够理解出来,然后一些东西搞了一下协议无关性
理解套接字切实就是应用层和传输层传输数据用的。
2:时间获取的服务器程序