网络编程技术socket控制模块
时间:2021-05-08

tcp协议的详细地址大家族(AF, Address Family)分成2种,一种是根据文档的AF_UNIX,一种是根据互联网的AF_INET,;tcp协议的种类有2种,朝向联接的tcp协议SOCK_STREAM和无联接的tcp协议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方式 回到一个带有2个原素的 元组(connection,address)。第一个原素connection是新的socket目标,网络服务器务必根据它与顾客通讯;第二个原素 address是顾客的Internet详细地址。


TCP联接的步骤如下图所显示。

网络编程socket模块

必须留意的是,在socket传输信息内容时,只有以byte文件格式推送,而python3默认设置的是unicode文件格式。因而,对python3在推送str时必须编号str.encode(),接受str时必须编解码str.decode()。