socket 的概念 :
到目前为止我们学习了 ip 地址和端口号还有 tcp 传输协议,为了保证数据的完整性和可靠性我们使用 tcp 传输协议进行数据的传输,为了能够找到对应设备我们需要使用 ip 地址,为了区别某个端口的应用程序接收数据我们需要使用端口号,那么通信数据是如何完成传输的呢?
使用 socket 来完成
socket (简称 套接字) 是进程之间通信一个工具,好比现实生活中的插座,所有的家用电器要想工作都是基于插座进行,进程之间想要进行网络通信需要基于这个 socket。
Socket 类型
# Socket 类型
# 套接字格式: socket(family, type[,protocal]) 使用给定的套接族,套接字类型,协议编号(默认为0)来创建套接字
import socket
# 用于同一台机器上的进程通信(既本机通信)
socket.AF_UNIX = 1
# 用于服务器与服务器之间的网络通信
print(socket.AF_INET)
# 基于 IPV6 方式的服务器与服务器之间的网络通信 socket.AF_INET6
# 基于TCP的流式socket通信
print(socket.SOCK_STREAM)
# 基于UDP的流式socket通信
print(socket.SOCK_DGRAM)
# 可靠的连续数据包服务
print(socket.SOCK_SEQPACKET)
# 创建 TCP Socket :
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 创建 UDP Socket :
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)