查看所有Python相关学习笔记
socket编程
- 应用使用socket编程接口来通过TCP/IP协议进行通信
网络协议栈
- TCP、UDP对应传输层,IP协议对应网络层
- 数据处理
- 应用层
- 数据传输
- 传输层
- 网络层
- 数据链路层
- 物理层
socket概念
- 可以用来进行进程间通信(包括网络通信)
- 操作系统API编程接口的概念
- 操作系统的服务,以库的形式封装调用接口给应用程序
- 内存管理
- 进程
- 线程
- 文件
- socket
- 操作系统的服务,以库的形式封装调用接口给应用程序
- 是操作系统创建的概念
- 进程好比电话
- socket好比电话插口
- 进程创建一个socket,就像电话用线接上一个插口
- 不同的进程通过socket通信,就像电话接上电话插口进行通话
socket的参数项
- 使用什么传输层、网络层协议
- 目前最常用的是TCP,IP协议
- 也有其他的传输层协议:UDP、SCTP
- 网络层,比如:IP协议,也分IPv6和IPv4
- 绑定哪个网络层地址
- 比如IPv4协议就是一个IPv4地址,IPv6协议就是一个IPv6地址
- 网络层地址决定了唯一网络节点(比如电脑,手机)
- 使用什么端口
- 主机上会有很多进程,接受到的网络消息该送给哪个进程处理呢
- 用一个号码来标识,我们叫它端口号
- 比如http服务进程通常采用80作为端口号
python中的socket
-
TCP socket通信的特点
- 服务端vs客户端
- 通过(虚拟)连接
- 建立连接(three way handshake)(三次握手)
- 进行通信
- 拆除连接
- 客户端-->服务端-->客户端-->服务端
-
服务器端
- 客户端
多个客户端同时连接
TCP传输的特点:流
- 消息的结构
网友评论