python系列:socket库详解

Posted 尘染.破绽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python系列:socket库详解相关的知识,希望对你有一定的参考价值。

python系列-socket库应用详解

文章目录

一. socket库的函数

函数名参数作用
gethostname()无参数返回主机名
gethostbyname('主机名‘)主机名将主机名转换为ipv4地址
gethostbyname_ex(‘主机名’)主机名返回主机名、主机别名列表、主机IP地址列表
gethostbyaddr('ip地址‘)ip地址返回三元组(主机名,主机别名列表,主机IP地址列表)
getservbyport(端口号’,‘协议名’)端口号,协议名返回该端口号的服务名,仅限于本机
getservbyname(‘服务名’,‘协议名’)服务名,协议名返回该服务所在的端口号
getsockname()无参数返回自己捆绑的IPv4地址
getaddrinfo(‘主机名’,‘端口号’)主机名,端口号返回五元组,用于获取主机名的地址信息,兼容ipv4和ipv6
socket(family,type)family:socket.AF_INET(IPv4)
         socket.AF_INET6(IPv6)
             AF_UNIX(同一台机器上的进程间通信)
type:socket.SOCK_STREAM(TCP连接)
     socket.SOCK_DGRAM(UDP协议)
创建一个已知IP地址和协议类型的连接
connect((host,port))(主机名,端口号)与该主机的端口进行远程连接,注意括号
gettimeout()无参数返回socket超时时间,单位为s
settimeout(timeout)超时时间设置socket超时时间

二.socket库的方法

1.connect(address):

      连接到一个address(IP地址)对应的远程socket。如果连接被中断,这个方法会等待直到连接完成,或者会抛出一个socket.timeout错误

2.accept():

      接受一个连接,但前提是socket必须已经绑定了一个地址,在等待连接。在默认情况下,socket是阻塞式的,意思就是socket的方法的调用在任务完成之前是不会返回的。
      调用accept方法时,socket会时入“waiting”状态。客户请求连接时,方法建立连接并返回服务器。accept方法返回一个含有两个元素的元组(connection,address)。第一个元素connection是新的socket对象,服务器必须通过它与客户通信;第二个元素address是客户的Internet地址。

3.recv(bufsize):

      从socket接收数据,注意是byte类型,bufsize指定一次最多接收的数据大小。

4.recvfrom(bufsize) :

      与上一个recv(bufsize)方法的区别是返回值除了数据还有发送数据的地址,返回值是一个数据,地址对(data, address)。

5.send(bytes):

      发送数据到socket,前提是已经连接到远程socket,返回值是发送数据的量,检查数据是否发送完是应用的责任。

6.sendto(bytes, flags, address):

      基本与socket.send()相同。

7.close():

      关闭连接,当socket.close()执行时,与这个连接相关的底层操作也会关闭(如文件描述符),一旦关闭,再对相关的文件对象操作都会失败。

8.bind(address):

      将socket对象绑定到一个地址,但这个地址必须是没有被占用的,否则会连接失败。
这里的address一般是一个ip,port对。

9.listen([backlog]) :

      监听,使得服务器能接收服务端连接,如果backlog指定了(最少是0,如果比0小,系统默认改成0),限制可以连接的数量,如果没有指定,将指派一个默认的合理值。

RK3568平台开发系列讲解(网络篇)详解socket的接口实现

以上是关于python系列:socket库详解的主要内容,如果未能解决你的问题,请参考以下文章

python 网络编程:TCP

python网络编程系列

socket库:Python实现TCP/IP客户和服务器通信

socket库:Python实现TCP/IP客户和服务器通信

Python中socket编程

游戏开发实战Unity使用Socket通信实现简单的多人聊天室(万字详解 | 网络 | TCP | 通信 | Mirror | Networking)