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方法关闭连接。
201849874.gif.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Socket创建函数 socket.socket(socket_family, socket_type, prot...
    JianMing阅读 6,028评论 1 13
  • 基础知识 计算机网络 A:IP地址 (1) 用来标识网络上一台独立的主机 C: 传输协议:通讯的规则。例如:T...
    So_ProbuING阅读 1,292评论 0 1
  • 最近在学习Python看了一篇文章写得不错,是在脚本之家里的,原文如下,很有帮助: 一、网络知识的一些介绍 soc...
    qtruip阅读 2,747评论 0 6
  • 天凉, 添衣。
    冬至而已阅读 232评论 1 1
  • 很久没有认真看看周围的人 、事、物了,每天活在自以为是的忙碌中,仿佛离开自己所有的事情都无法运转似的。 最近仿佛走...
    SN十年阅读 363评论 1 1