python socket模块

  • 函数
    • socket.socket()
    • socket.create_connection()
    • socket.create_server()
    • socket.close(fd)
    • socket.gethostbyname(hostname)
    • socket.gethostname()
  • 套接字对象
    • socket.accept()
    • socket.bind()
    • socket.close()
    • socket.connect()
    • socket.connect_ex()
    • socket.getpeername()
    • socket.getsockname()
    • socket.listen()
    • socket.send()
    • socket.recv()
    • socket.makefile()
    • socket.gettimeout()
    • socket.recvfrom()
    • socket.sendfile()
    • socket.sendto()

socket–底层网络接口
这个模块提供了访问BSD套接字的接口。在所有现代Unix系统、windows、macos和其他平台上可用。

函数

socket.socket()

socket.socket(family,type,proto,fileno)
创建套接字

  • family:地址簇 AF_INET(默认)、AF_INET6、AF_UNIX、AF_CAN、AF_PACKET或AF_DRS
  • type:套接字类型 SOCK_STREAM(默认)、SOCK_DGRAM、SOCK_RAW
  • fileno:协议号通常位零,可以省略。

socket.create_connection()

socket.create_connection(address[,timeout[,source_address]])
连接到一个TCP服务,该服务正在监听internet address(用二元组(host,port)表示)。连接后返回套接字对象。相比socket.connect()更高级的函数:如果host是非数字主机名,他将尝试从AF_INET和AF_INET6解析它,然后依次尝试连接到所有可能的地址,知道连接成功。这使IPV4和IPV6的客户端变得容易。

  • timeout:可以在套接字上设置超时(在尝试连接前)。
  • source_address:它必须为二元组(host,port)

socket.create_server()

socket.create_server(address,*,family=AF_INET,backlog=None,reuse_port=False,dualstack_ipv6=False)
便捷函数,创建绑定到address(二元组(host,port))的TCP套接字,返回套接字对象。

  • family:设置为AF_INET或AF_INET6
  • backlog:是传递给socket.listen()的队列大小,为0表示默认的合理值。
  • reuse_port表示是否设置SO_REUSEPORT 套接字选项

socket.close(fd)

关闭一个套接字文件描述符

socket.gethostbyname(hostname)

将主机名称转换为IPV4地址格式。IPV4地址以字符串格式返回

socket.gethostname()

返回一个字符串,包含当前正在运行python解释器的机器的主机名

套接字对象

socket.accept()

接收一个连接。此socket必须绑定到一个地址上并且监听连接。返回值是一对(conn, address),conn是一个套接字对象,用于在此链接上收发数据。address是连接另一端的套接字所绑定的地址.

socket.bind()

socket.bind(address)
将套接字绑定到address。套接字必须尚未绑定。

socket.close()

将套接字标记为关闭

socket.connect()

socket.connect(address)
连接到address处的远程套接字。adress的格式取决于地址簇,一般格式为(host,port),如果连接出错,返回socket.error错误。

socket.connect_ex()

connect()函数拓展,出错时返回错误码,不抛出异常。

socket.getpeername()

返回套接字连接到的远程地址。可以用于查找远程IPV4/V6套接字的端口号。

socket.getsockname()

返回套接字本身的地址。可以用于查找IPV4/V6套接字的端口号。

socket.listen()

socket.listen([backlog])
启动一个服务器用于接受连接。如果指定backlog,则最低为0,它指定系统允许暂未accept的连接数,超过后将拒绝新连接。

socket.send()

socket.send(bytes[,flags])
发送数据给套接字。套接字必须已经连接到远程套接字。

socket.recv()

socket.recv(bufsize[,flags])
从套接字接收数据。返回值是一个字节对象,表示接收到的数据。bufsize指定一次接收的最大数据量。

socket.makefile()

返回与套接字关联的文件对象。

socket.gettimeout()

返回套接字操作相关的超时秒数(浮点数),未设置超时则返回None。

socket.recvfrom()

socket.recvfrom(bufsize[,flags])
从套接字接收数据。返回值(bytes, address)bytes是字节对象,表示接收到的数据,address是发送套接字的地址。

socket.sendfile()

socket.sendfile(file,offset=0,count=None)
使用高性能os.sendfile发送文件。

socket.sendto()

socket.sendto(bytes,flags,address)
发送数据给套接字。套接字不应连接到远程套接字

服务器端套接字

  • socket.bind()
  • socket.listen()
  • socket.accept()

客户端套接字

  • socket.connect()
  • socket_ex()

人生漫漫其修远兮,网安无止境。
一同前行,加油!

你可能感兴趣的:(python模块,socket,linux,python,网络,网络通信)