套接字
套接字编程
- 根据
socket模块提供的接口函数,进行组合使 用完成基于tcp或者udp的网路编程 - 套接字:网络间进行通信的方式的名称,完成上述目标的一种编程手段,编程方案
套接字分类
流式套接字(SOCK_STREAM)
传输层基于TCP协议提供面向连接的传输服务方案,以字节流形式进行传输
数据报套接字(SOCK_DGRAM)
传输层基于UDP协议提供面向无连接的传输服务方案,以消息结构体形式进行传输
原始套接字(SOCK_RAM)
访问底层协议的套接字编程(一般用不到)
套接字对象
from socket import *
s = socket()
s.bind(('127.0.0.1',9999))
# 获取套接字地址族类型
print(s.family)
# 获取套接字类型
print(s.type)
# 获取套接字的绑定地址
print(s.getsockname())
# 获取套接字的文件描述符
# 文件描述符:
# 每一个IO事件操作系统都会分配一个不同的正整数作为编号,该正整数即为这个IO的文件描述符
print(s.fileno())
# 文件描述符是操作系统识别IO的唯一标志
# stdin ---> 0
# stdout --> 1
# stderr --> 2
# 获取客户端连接套接字的对应地址,必须已连接的
# print(s.getpeername())
# 功能:设置套接字选项,丰富或者修改套接字属性功能
# 参数: level 选项类别 SOL_SOCKET
# option 具体选项
# value 选项值
# 如果要设置套接字选项,最好在创建套接字之后立即设置
print(s.setsockopt(level,option,value))
# 功能:获取套接字选项值
# 参数: level 选项类别 SOL_SOCKET
# option 具体选项
# 返回值:选项值
s.getsockopt(level,option)