教材知识点总结
网络编程
-
客户端-服务器编程模型
-
四步:
1、当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务。
2、服务器收到请求后,解释它,并以适当的方式操作它的资源。
3、服务器给客户端发送一个响应,并等待下一个请求。
4、客户端收到响应并处理它。
客户端与服务器都是进程。
-
-
网络
- 客户端与服务器通常运行在不同的主机上,并且通过计算机网络的硬
件和软件资源来通信。
-
对于主机而言,网络是一种I/O设备,是数据源与数据接收方。
-
物理上而言,网络是一个按照地理远近组成的层次系统。
-
协议具备的基本能力:
1、命名机制:不同的局域网技术有不同和不兼容的方式来为主机
分配地址
2、传送机制:在电缆上编码位和将这些位封装成帧方面,不同的
联网技术有不同的和不兼容的方式。
-
数据从一台主机到另一台主机:
-
IP地址
-
每台因特网主机都运行实现TCP/IP协议。
-
把因特网看成一个世界范围的主机集合:
1、主机集合被映射为一组32位的IP地址
2、IP地址被映射为一组称为因特网域名的标识符
3、因特网主机上的进程通过连接和任何其他因特网主机上的进程
通信
-
一个IP地址就是一个32位无符号整数
-
IP地址结构体:
struct in_addr{ uint32_t s_addr; }
-
hotnl函数将32位整数由主机字节序转换为网络字节序。
-
ntohl函数将32位整数从网络字节顺序转换为主机字节。
-
域名与IP地址:
1、一个域名和IP地址之间是一一映射
2、多个域名可以映射到同一个IP地址
3、多个域名可以映射到同一组的多个IP地址
-
TCP/IP:
-
-
套接字接口
-
应用概述:
-
套接字地址结构:
{ uint16_t sin_family; uint16_t sin_port; struct in_addr sin_addr; unsigned char size_zero[8]; }
-
socket 函数
{ int socket(int domain, int type , int protocol); }
-
connect 函数
{ int connect(int clientfd,const struct *addr,socket_t addrlen); }
-
bind 函数
{ int bind(int clientfd,const struct *addr,socket_t addrlen); }
-
listen 函数
{ int listen(int socket,int backlog); }
-
accept 函数
{ int accept(int listenfd, struct sockaddr* addr,int *addrlen); }
-
监听与已连接:
-