https://www.jianshu.com/p/b5fb045ec5e8
自己写的,还是觉得优快云好用,简书的编辑感觉不太顺手,上面的网址是socket模块简单总结。后面应该在这里总结。 #楷体,默认,#000000(注释,底色代码#66FFFF)
tip1: #宋体,18号,#666666,加粗(注释,底色#66FFFF)
在python3中,利用套接字传输的内容都以byte形式传输,这时候传送时(send/sendto)需要encode,接收(recv)时需要decode。
tip2:
socket常用功能函数:
socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None) #创建socket对象
socket families(地址簇):
AF_UNIX —————————— unix本机之间进行通信
AF_INET —————————— 使用IPv4
AF_INET6 —————————— 使用IPv6
注:socket.socket()中第一个能使用上述值。
socket types:
SOCK_STREAM # TCP套接字类型
SOCK_DGRAM # UDP套接字类型
tip3:
socket.connect(("IP",port)) #连接到远程socket(常用于客户端)
IP ----- 你所要连接的目标IP
port ----- 你所要连接的端口
socket.connect(("IP",port))
功能与connect(address)相同,但是成功返回0,失败返回errno的值。
tip4:
socket.send(data) #将data通过socket发送到IP,python3中只能发送byte型数据
tip5:
socket.recv(bufsize[, flags]) #从socket接收数据,返回值是一个代表所收到的数据的字节对象。
一次性接收的最大数据量由bufsize指定, 参数flags通常忽略。
tip6:
s.settimeout(timeout) #设置套接字操作的超时期,timeout是一个浮点数,单位是秒。
值为None表示没有超时期。一般,超时期应该在刚创建套接字时设置,因为它们可能用于连接的操作(如connect())