python --- socket模块详解

简介: socket常用功能函数:  socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)                 #创建socket对象    socket families(地址簇):      AF_UNIX  ——————————   unix本机之间进行通信      AF_INET  ——————————    使用IPv4      AF_INET6  ——————————     使用IPv6        注:socket.socket()中第一个能使用上述值。

 

socket常用功能函数:

  socket.socket(family=AF_INETtype=SOCK_STREAMproto=0fileno=None)                 #创建socket对象

    socket families(地址簇):

      AF_UNIX  ——————————   unix本机之间进行通信

      AF_INET  ——————————    使用IPv4

      AF_INET6  ——————————     使用IPv6

        注:socket.socket()中第一个能使用上述值。

    socket types:

      SOCK_STREAM          # TCP套接字类型

      SOCK_DGRAM   # UDP套接字类型

      SOCK_RAW               #原始套接字类型,这个套接字比较强大,创建这种套接字可以监听网卡上的所有数据帧

      SOCK_RDM              #是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级访问,在需要执行某些特殊操作时使用,如发送ICMP报文。SOCK_RAM通常仅限于高级用户或管理员运行的程序使用。

        注:这些常量都是套接字类型,应用于socket()函数中的第二个参数中.根据系统的不同,可能有更多的常数。只有SOCK_STREAMSOCK_DGRAM似乎通常很有用。

    协议号通常为零,可以省略,或者在地址族为AF_CAN的情况下,协议应为CAN_RAWCAN_BCM 。如果指定fileno,则忽略其他参数,从而导致具有指定文件描述器的套接字返回。socket.fromfd()不同,fileno将返回相同的套接字,而不是重复。这可能有助于使用socket.close()关闭分离的套接字,一般情况下后两个参数忽略即可

   socket.bind(address)                                 #将socket绑定到地址(常用于服务端)

      address地址的格式取决于地址族, 在AF_INET下,以元组(host,port)的形式表示地址。

   socket.listen([backlog])                       #启用服务器以接受连接(常用于服务端)

      backlog >=0,指定系统在拒绝新连接之前将允许的未接受连接的数量。如果未指定,则选择默认的合理值。

   socket.accept()                      #接收一个连接.该socket 必须要绑定一个地址和监听连接.返回值是一对(conn,address)。(常用于服务端)

      conn是socket对象,可以在该连接上发送和接收数据,address是连接另一端的地址。

   socket.recv(bufsize[, flags])                   #从socket接收数据,返回值是一个代表所收到的数据的字节对象。

      一次性接收的最大数据量由bufsize指定, 参数flags通常忽略。

   socket.send(data[, flags])                  #将数据发送到socket。

      python3中只能发送bytes类型的数据。

   socket.connect(address)              #连接到远程socket(常用于客户端)

      如果连接被信号中断,则该方法等待直到连接完成,或者如果信号处理程序没有引发异常并且套接字正在阻塞或者已经阻塞,则在超时时引入socket.timeout超时。对于非阻塞套接字,如果连接被信号中断(或由信号处理程序引发的异常),则该方法引发InterruptedError异常。

   socket.close()             #关闭socket

      注:被调用后,连接断开,socket不能在发送数据,连接另一端也将不在接收数据。

 

目录
相关文章
|
9天前
|
XML 数据格式 Python
Python的`import`用于加载模块,基础形式是`import module`,全量导入
【6月更文挑战第23天】Python的`import`用于加载模块,基础形式是`import module`,全量导入;`from module import name`选择性导入部分,减少命名空间污染;`from module import *`导入所有(不推荐),易引发冲突。别名导入如`from math import sqrt as square_root`可避免冲突。包导入用`.`,如`import xml.etree.ElementTree as ET`。
34 8
|
9天前
|
XML 数据格式 Python
在Python中,导入其他模块是通过使用import语句完成的
在Python中导入模块涉及`import`语句的不同用法:1) `import math`导入整个标准库;2) `from math import sqrt`导入单个函数;3) `import numpy as np`使用别名;4) `from random import *`导入所有(不推荐);5) `import xml.etree.ElementTree as ET`导入子模块;6) 使用`importlib.import_module()`延迟导入;7) `from .module import func`导入相对路径模块,需管理`sys.path`。
27 6
|
7天前
|
Python
python--os模块
python--os模块
10 2
|
7天前
|
Python
python-time模块
python-time模块
8 1
|
8天前
|
算法 数据安全/隐私保护 开发者
Python logger模块详细讲解
Python logger模块详细讲解
14 3
|
9天前
|
Python
Python的`os`模块核心功能概述:通过`os.getcwd()`获取
【6月更文挑战第23天】Python的`os`模块核心功能概述:通过`os.getcwd()`获取、`os.chdir()`改变工作目录;使用`os.mkdir()`, `os.makedirs()`创建目录,`os.rmdir()`, `os.removedirs()`删除;`os.rename()`, `os.renames()`重命名文件或目录;`os.remove()`删除文件;`os.listdir()`列出目录内容;`os.path.exists()`, `os.path.isfile()`, `os.path.isdir()`检查路径;`os.stat()`获取文件属性。
20 4
|
9天前
|
XML 数据格式 Python
Python模块导入包括:`import math`导入标准库
【6月更文挑战第23天】Python模块导入包括:`import math`导入标准库,`from math import sqrt`导入单个函数,`import numpy as np`给模块取别名,`from random import *`导入所有(不推荐),`import xml.etree.ElementTree as ET`导入子模块,`import_module('pandas')`按需导入,和使用相对路径如`from .module import func`处理项目结构。记得调整`sys.path`以包含自定义模块路径。
20 4
|
8天前
|
Linux Python
Python- jinja2模块详解
Python- jinja2模块详解
11 1
|
13天前
|
存储 Python
Python中的模块对象__dict__
【6月更文挑战第13天】
14 4
|
12天前
|
定位技术 Python
Python的try、except异常处理模块使用方法
所以,我们就解决了由于可能具有的arcpy.ExecuteError异常而导致的程序中断问题;大家在实际使用时,按照自己程序中可能出现的报错类,对本文出现的arcpy.ExecuteError异常类加以修改即可。