pythonsocket接口_python socket 模块API

此模块提供访问BSD套接字接口。

一、底层网络接口

允许在现代modern Unix systems, Windows, Mac OS X, BeOS, OS/2与可能的其他平台上使用。(需要平台依赖) 套接地址表示:

套接字地址表示如下:单个字符串用于AF_UNIX地址族。一对(主机,端口)是用于AF_INET地址类别,其中主机是一个字符串,代表互联网域名符号像'daring.cwi.nl的像'100.50.200.5'或IPv4地址中的主机名和端口一个整数。

对于IPv4地址,接受两个特殊的形式,而不是一个主机地址:空字符串表示INADDR_ANY和字符串'代表INADDR_BROADCAST的的。行为是不是为了向后兼容的IPv6,因此,你可能会想避免这些,如果你打算在你的Python程序支持IPv6。

如果你使用一个主机名在IPv4/v6的套接字地址的主机部分中,程序会显示一个不确定的行为,Python使用DNS解析返回的第一个地址。不同的方式解决的套接字地址转换为实际的IPv4/v6地址,DNS解析或主机配置的结果而定。尽量在主机部分使用数字地址。

通过setblocking()方法支持非阻塞式模式。

通过setTimeout()方法支持普遍超时。

exception

socket.error socket抛出系统异常。

socket.herror 引发与地址相关错误。C API中包括gethostbyname_ex()和gethostbyaddr()。

socket.gaierror 由getaddrinfo() and getnameinfo()引发的地址错误。

socket.timeout 由之前使用socket引发的超时异常

2.3新增

socket.AF_UNIX

socket.AF_INET

socket.AF_INET6

这些常数代表地址(协议)的家庭,用于socket()的第一个参数。 AF_UNIX常量如果没有定义,那么这个协议是不支持的。

socket.SOCK_STREAM

socket.SOCK_DGRAM

socket.SOCK_RAW

socket.SOCK_RDM

socket.SOCK_SEQPACKET

这些常量表示套接字类型,第二个参数用于socket()。 (只有SOCK_STREAM和SOCK_DGRAM似乎是普遍有用的。)

SO_*

socket.SOMAXCONN

MSG_*

SOL_*

IPPROTO_*

IPPORT_*

INADDR_*

IP_*

IPV6_*

EAI_*

AI_*

NI_*

TCP_*

在unix文档中socket和ip端口中有很多如此的常量,普遍用在setsockopt()和getsockopt()方法中,在大多数情况中,这些unix头文件中被定义的符号已经作为默认值已经提供。

SIO_*

RCVALL_*

windows WSAIoctl()常量参数。

New in version 2.6.

TIPC_*

TIPC相关常量。匹配C socket API 输出。

socket.has_ipv6

>>> socket.has_ipv6

True 表示支持IPV6.

socket.create_connection(address[, timeout[, source_address]])

连接到一个TCP服务监听网络地址address(host,port),并返回一个socket对象。这是一个比socket.connect()高级的函数:如果是非IP地址,会尝试连接所有解析到的域名。与此同时兼容IPV6/4使得对客户端编程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值