python网络编程基础socket模块

本文介绍了Python的socket模块,用于基础网络编程。主要内容包括异常处理、支持的套接字地址家族、套接字类型及各种函数和方法,如创建连接、地址信息获取、套接字对象的方法等。此外,还提到了socketserver模块提供更高级的服务,以及示例展示了服务器端和客户端的交互。
摘要由CSDN通过智能技术生成

python 网络编程 socket

socket网络套接字,提供基础的网络编程服务
SocketServer 提供较高级的服务,简化网络编程

socket提供如下方法:

异常:

1.exception socket.error
套接字相关的错误,返回(errno, string),或者一个字符串。socket.error 是IOError错误的一种

2.exception socket.herror
调用gethostbyname_ex(), gethostbyaddr() 抛出的主机与地址错误 ,返回(h_errno, string) ,string是c函数hstrerror()返回
3.exception socket.gaierror
地址相关的错误,一般是调用getaddrinfo(),getnameinfo()时。返回(error, string),string是错误的具体描述,是由c函数gai_strerror()返回。
error的值是定义为EAI_* 中的一个值
4.exception socket.timeout 超时

python支持的套接字地址家族:

socket.AF_UNIX
socket.AF_INET
socket.AF_INET6

套接字类型:

socket.SOCK_STREAM
socket.SOCK_DGRAM
socket.SOCK_RAW
socket.SOCK_RDM
socket.SOCK_SEQPACKET

比较常用的是:socket.SOCK_STREAM ,socket.SOCK_DGRAM

函数对象

1.socket.create_connection(address[, timeout[, source_address]])
建立tcp连接,地址(host, port),返回一个socket对象,比socket.connect()高级
如果host是非数字的ip地址,则会使用AF_INET and AF_INET6进行地址解析
timeout超时,若没有指定,则设置为默认,默认值可以使用getdefaulttimeout()
source_address源端地址(host, port) 如果host或者port是”或0,则使用默认的

2.socket.getaddrinfo(host, port[, family[, socktype[, proto[, flags]]]])
获取地址信息返回(family, socktype, proto, canonname, sockaddr)5元组
例如:

>>> import socket
>>> socket.getaddrinfo("example.org", 80, 0, 0, socket.IPPROTO_TCP)
[(2, 1, 6, '', ('93.184.216.34', 80)), (10, 1, 6, '', ('2606:2800:220:1:248:1893:25c8:1946', 80, 0, 0))]
>>> 

3.socket.getfqdn([name])
获取完整域名

4.socket.gethostbyname(hostname)
dns解析࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值