socket经常使用功能函数:html
socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None) #建立socket对象python
socket families(地址簇):服务器
AF_UNIX —————————— unix本机之间进行通讯socket
AF_INET —————————— 使用IPv4函数
AF_INET6 —————————— 使用IPv6
大数据
注:socket.socket()中第一个能使用上述值。spa
socket types:unix
SOCK_STREAM # TCP套接字类型code
SOCK_DGRAM # UDP套接字类型htm
SOCK_RAW #原始套接字类型,这个套接字比较强大,建立这种套接字能够监听网卡上的全部数据帧
SOCK_RDM #是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级访问,在须要执行某些特殊操做时使用,如发送ICMP报文。SOCK_RAM一般仅限于高级用户或管理员运行的程序使用。
注:这些常量都是套接字类型,应用于socket()
函数中的第二个参数中.根据系统的不一样,可能有更多的常数。(只有SOCK_STREAM
和SOCK_DGRAM
彷佛一般颇有用。)
协议号一般为零,能够省略,或者在地址族为AF_CAN
的状况下,协议应为CAN_RAW
或CAN_BCM
。若是指定fileno,则忽略其余参数,从而致使具备指定文件描述器的套接字返回。与socket.fromfd()
不一样,fileno将返回相同的套接字,而不是重复。这可能有助于使用socket.close()
关闭分离的套接字,通常状况下后两个参数忽略便可。
socket.bind(address) #将socket绑定到地址(经常使用于服务端)
address地址的格式取决于地址族, 在AF_INET下,以元组(host,port)的形式表示地址。
socket.listen([backlog]) #启用服务器以接受链接(经常使用于服务端)。
backlog >=0,指定系统在拒绝新链接以前将容许的未接受链接的数量。若是未指定,则选择默认的合理值。
socket.accept() #接收一个链接.该socket 必需要绑定一个地址和监听链接.返回值是一对(conn,address)。(经常使用于服务端)
conn是socket对象,能够在该链接上发送和接收数据,address是链接另外一端的地址。
socket.recv(bufsize[, flags]) #从socket接收数据,返回值是一个表明所收到的数据的字节对象。
一次性接收的最大数据量由bufsize指定, 参数flags一般忽略。
socket.send(data[, flags]) #将数据发送到socket。
python3中只能发送bytes类型的数据。
socket.connect(address) #链接到远程socket(经常使用于客户端)
若是链接被信号中断,则该方法等待直到链接完成,或者若是信号处理程序没有引起异常而且套接字正在阻塞或者已经阻塞,则在超时时引入socket.timeout
超时。对于非阻塞套接字,若是链接被信号中断(或由信号处理程序引起的异常),则该方法引起InterruptedError
异常。
socket.close() #关闭socket
注:被调用后,链接断开,socket不能在发送数据,链接另外一端也将不在接收数据。