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套接字类型
SOCK_RAW #原始套接字类型,这个套接字比较强大,创建这种套接字可以监听网卡上的所有数据帧
SOCK_RDM #是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级访问,在需要执行某些特殊操作时使用,如发送ICMP报文。SOCK_RAM通常仅限于高级用户或管理员运行的程序使用。
注:这些SOCK_DGRAM似乎通常很有用。)
socket.close()关闭分离的套接字,一般情况下后两个参数忽略即可。
socket.bind(address) #将socket绑定到地址(常用于服务端)
address地址的格式取决于地址族, 在AF_INET下,以元组(host,port)的形式表示地址。
socket.listen([backlog]) #启用服务器以接受连接(常用于服务端)。
backlog >=0,指定如果未指定,则选择默认的合理值。
socket.accept() #)。(常用于服务端)
conn是socket对象,可以在该连接上发送和接收数据,address是连接另一端的地址。
socket.recv(bufsize[, flags]) #从socket接收数据,返回值是一个代表所收到的数据的字节对象。
一次性接收的最大数据量由bufsize指定, 参数flags通常忽略。
socket.send(data[, flags]) #将数据发送到socket。
python3中只能发送bytes类型的数据。
socket.connect(address) #连接到远程socket(常用于客户端)
InterruptedError异常。
socket.close() #关闭socket
注:被调用后,连接断开,socket不能在发送数据,连接另一端也将不在接收数据。