Python socket编程

创建server步骤:

  1. 创建socket对象
    socket = socket.socket(family, type)
    family:
    • AF_INET / AF_INET6:Internet地址
    • AF_UNIX:同一台机器上的进程间通信
      type:
    • SOCK_STREAM: 流套接字
    • SOCK_DGRAM: 数据报套接字
  2. 绑定socket到指定地址
    socket.bind(address)
    address: (host, port)
  3. listen方法接收连接请求
    socket.listen(backlog)
    backlog:最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求。
  4. accept方法等待客户请求一个连接
    connection, address = socket.accept()
    调用accept方法时,socket会时入“waiting”状态。客户请求连接时,方法建立连接并返回服务器。
    accept方法返回一个含有两个元素的元组(connection,address)。
    connection 是新的socket对象,服务器必须通过它与客户通信
    address是客户的Internet地址
  5. 数据处理
    服务器和客户端通过send和recv方法通信(传输数据)。
    send:服务器调用,并采用字符串形式向客户发送信息。send方法返回已发送的字符个数。
    recv:从客户端接收信息。调用recv时,服务器必须指定一个整数,它对应于可通过本次方法调用来接收的最大数据量。recv方法在接收数据时会进入“blocked”状态,最后返回一个字符串,用它表示收到的数据。如果发送的数据量超过了recv所允许的,数据会被截短。多余的数据将缓冲于接收端。以后调用recv时,多余的数据会从缓冲区 删除(以及自上次调用recv以来,客户可能发送的其它任何数据)。
  6. 传输结束,服务器调用socket的close方法关闭连接。

创建client步骤:

  1. 创建一个socket
    socket = socket.socket(family, type)
  2. 使用socket的connect方法连接服务器
    socket.connect((host,port))
    host代表服务器主机名或IP,port代表服务器进程所绑定的端口号。如连接成功,客户就可通过套接字与服务器通信,如果连接失败,会引发socket.error异常。
  3. 处理阶段,客户和服务器将通过send方法和recv方法通信。
  4. 传输结束,客户通过调用socket的close方法关闭连接。
Python socket编程_第1张图片
201849874.gif.jpg

你可能感兴趣的:(Python socket编程)