码迷,mamicode.com
首页 > 其他好文 > 详细

网络编程socket模块

时间:2017-06-15 00:44:40      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:socket

  套接字的地址家族(AF, Address Family)分为2种,一种是基于文件的AF_UNIX,一种是基于网络的AF_INET,;套接字的类型有2种,面向连接的套接字SOCK_STREAM和无连接的套接字SOCK_DGRAM。

  UDP常用的模块有3个:

  (1) socket([family[, type[proto]]])

  (2) sendto(string,address)

  (3) recvfrom(bufsize[, flags]) 收发UDP数据,接收到的是data,address

  TCP常用的模块有6个:

  (1) connect(address) 客户端连接TCP服务器,address地址必须是一个双元素元组,格式是(host,port)

  (2) send(bytes[, flags])

  (3) recv(bufsize[, flags]) 收发TCP数据,接收到的是data

  (4) bind(address)

  (5) listen(backlog) backlog指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求。

  (6) accept() 调用accept方法时,socket会时入“waiting”状态。客户请求连接时,方法建立连接并返回服务器。accept方法返回一个含有两个元素的 元组(connection,address)。第一个元素connection是新的socket对象,服务器必须通过它与客户通信;第二个元素 address是客户的Internet地址。


  需要注意的是,在socket传送信息时,只能以byte格式发送,而python3默认的是unicode格式。因此,对python3在发送str时需要编码str.encode(),接收str时需要解码str.decode()。

网络编程socket模块

标签:socket

原文地址:http://ustchch.blog.51cto.com/12924303/1936709

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!