目录
一、socket模块通信简述
本次主要是大致说明socket模块可以使用的两个通信协议TCP和UDP。注意网络通信是多端的,不可能就一个程序来完成,在不同的端程序也会有所不同。我们所说的端一般为服务器端和客户端。服务器端和客户端的程序是不同的。并且我们是要先打开服务器,再打开客户端开始通信。
TCP协议服务器端建立了连接,所以要关闭这个连接。UDP协议服务器什么都没做。也就不需要服务器关闭什么。
当然你要是想关服务器的话,那也可以给服务器给关掉。
1.1 TCP协议程序结构流程图图(以下左边是服务器端,右边是客户端)
1.2 UDP协议程序结构流程图
二、TCP和UDP的大致区别
TCP相对来说复杂一些,TCP协议服务器会创建一个新的连接socker对象来与客户端互相通信。而UDP就不会。所以在后面也可以看出,TCP一旦建立连接后,发送数据就不再需要地址直接send(data)即可,但是UDP通信是没有建立连接,所以发送数据需要服务器的地址,它使用的方法为sendto(data, address)。这就是它们的主要区别。
TCP发送数据前要先建立连接(connect);UDP发送数据前不建立连接,但发送数据是要传入一个参数为服务器的地址(address)
注意:
- 它发送的数据必须是字节序列对象,类似与我们的图片(jpg文件等)文件。图片其本质上就是一连串字节序列对象,每一个像素点为8位二进制字节序列(灰度图像,彩色图像是3通道,所以每一个像素点为24位二进制字节序列)。