网络编程
- 一. 网络编程
- 二. 客户端与服务器
- 2.1 一问一答
- 2.2 一问多答
- 2.3 多问一答
- 2.4 多问多答
- 三. TCP与UDP的特点
一. 网络编程
网络编程本质上就是学习传输层给应用层提供的API,把数据交给传输层,通过一层层的封装将数据通过网卡传输出去。
二. 客户端与服务器
客户端:主动发起通信的一方
服务器:被动接受的一方。
客户端给服务器发送的数据,称为请求(request)
服务器返回给客户端的数据,称为响应(response)
2.1 一问一答
一个请求只有一个响应,称为一问一答。
2.2 一问多答
一个请求对应多个响应,应用场景主要在下载。
2.3 多问一答
多个请求一个响应,应用场景在上传
2.4 多问多答
一个请求多个响应,一个响应多个请求。应用场景在远程控制桌面。
三. TCP与UDP的特点
TCP的特点: 1.有连接
2.可靠传输
3.面向字节流
4.全双工
UDP的特点:1.无连接
2.不可靠传输
3.面向数据报。
4.全双工
此处所说的连接,不是真正意义上的物理上的连接,而是一种虚拟的,抽象的连接。
有连接:比如打电话 一方打,你可以接或者不接。
无连接:比如发微信,无论你是否看,消息已经发过去了。
网络上谈到的连接,都是双方彼此都保存对方的信息。
可靠传输:无论使用什么样的技术手段,都不可能百分百保证能让信息从A传到B,此处的可靠传输是尽可能的完成传输,虽然无法保证一定到达,但是可以知道信息是否传到。
不可靠传输:不知道发送的数据到没到对方。
面向字节流:网络中传输数据的基本单位是字节。
面向数据报:每次传输的基本单位是一个数据报。(由一系列字节组成)
全双工:可以双向通信。