python_socket

python socket

socket 函数

socket.socket(family,type,protocol)

  1. family AF_UNIX 或AF_INET
  2. type TCP SOCK_STREAM UDP SOCK_DGRAM
  3. protocol: 一般不填

Socket对象方法

  • 服务端
  1. s.bind((host,port)) 绑定地址
  2. s.listen() TCP监听 操作系统可以挂起的最大连接数
  3. s.accept() 被动接受tcp客户端连接
  • 客户端
  1. s.connect((hostname,port)) 主动初始化TCP服务连接
  2. s.connect_ex() connect(0函数的扩展版 出错返回错误码
  • 公共用途

    • TCP
    1. s.recv(bufsize,flag) 接受TCP数据 返回字符串 bufsize 指定要接受的最大数据 flag 提供有发热消息的其他信息
      通常忽略
    2. s.send(string) 发送TCP数据 返回字节数
    3. s.sendall(string) 返回前尝试发送所有的数据 成功返回None 失败抛出异常
    • UDP
    1. s.recvfrom() 接受udp数据 返回(data,address) address为(ip,port)
    2. s.sendto() 发送udp
  • 关闭
    s.close()

  • 地址

  1. s.getpeername() 获取远程地址
  2. s.getsockname() 获取自己的地址
  • 选项
  1. s.setsockopt(level,optname,value)
  2. s.getsockopt(leve,optname[.buflen])
  3. s.settimeout(timeout) 设置套接字超时时间
  4. s.gettimeout() 获取超时时间
  • 阻塞 非阻塞
    s.setblocking(flag) flag=0 非阻塞式

  • 文件

  1. s.fileno() 返回套接字的fd
  2. s.makefile() 创建一个与该套接字相关的文件