Python搭建TCP客户端和服务器
TCP的概念:英文(Transmission Control Protocal)简称传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议。
为什么要有TCP呢?
网络之间的数据传输需要通过ip地址找到对应主机,再通过端口号找到对应端口,再通过端口把数据传输给对应的软件,但是大家要知道,数据是不可以随便传输的,任何事物都需要遵守相应的规则才能顺利到达目标,这时就需要一个通信双方共同遵守的传输协议——TCP
TCP协议的通信步骤有三个:
1.首先需要通信双方建立连接
2.然后彼此可以进行数据传输
3.数据传输结束后就关闭连接
对于通信步骤解释一下:之前有说过TCP是面向连接的,这就相当于生活之中的打电话,比如你想和某人通电话,是不是需要先拨号进行建立连接,等对方同意建立连接,也就是对方接了你的电话,这时你说的话对方才能够收到,然后等到通话结束需要挂断电话进行关闭连接。这个过程就完美体现了TCP的通信步骤。
TCP的特点:
1.面向连接的:
也就是通信双方必须先要进行建立连接,才能进行数据传输,等到数据传输结束后双方再断开连接,以释放系统资源。
2.可靠的数据传输:
TCP采用传输应答机制
超时重传
错误校验
流量控制和阻塞管理
好了TCP已经介绍完成,TCP是一种传输协议,是通信双方需要共同遵守的一个准则,有了准则通信又是如何进行的呢?
此时就需要socket(套接字)来完成具体的通信过程。
socket(套接字)概念:是进程之间传输数据的一个工具,多进程之间想要进行网络通信都需要基于socket。可以说我们使用的QQ、微信等软件进行通信时都使用到了socket。
这里先给大家简单介绍一下socket套接字的概念,具体的实际应用在以下的具体操作中给大家展示。
接下来我们通过python建立一个TCP客户端和TCP服务器来完成数据通信:
这个图是TCP客户端和服务器的开发流程:
首先说一下TCP客户端:
TCP客户端建立的步骤:
1.创建客户端套接字
2.和服务器套接字建立连接
3.给服务器端发送数据
4.接收服务器端的数据
5.关闭客户端套接字
说明:
1.TCP 网络应用程序开发分为客户端程序开发和服务端程序开发。
2.主动发起建立连接请求的是客户端程序
3.等待接受连接请求的是服务端程序