首页 > 编程语言 >python的socket模块

python的socket模块

时间:2022-11-30 23:22:55浏览次数:36  
标签:socket python SOCK TCP 参数 send 模块 接字

 

 

 

 

socket参数使用

## socket参数使用
参数一:地址簇

  socket.AF_INET IPv4(默认)
  socket.AF_INET6 IPv6

  socket.AF_UNIX 只能够用于单一的Unix系统进程间通信

参数二:类型

  socket.SOCK_STREAM  流式socket , for TCP (默认)
  socket.SOCK_DGRAM   数据报式socket , for UDP

  socket.SOCK_RAW 原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次,SOCK_RAW也可以处理特殊的IPv4报文;此外,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头。
  socket.SOCK_RDM 是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级访问,在需要执行某些特殊操作时使用,如发送ICMP报文。SOCK_RAM通常仅限于高级用户或管理员运行的程序使用。
  socket.SOCK_SEQPACKET 可靠的连续数据包服务

参数三:协议

  0  (默认)与特定的地址家族相关的协议,如果是 0 ,则系统就会根据地址格式和套接类别,自动选择一个合适的协议

 

其他参数:sk是自定义的变量,s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

服务端套接字函数
s.bind()    绑定(主机,端口号)到套接字
s.listen()  开始TCP监听
s.accept()  被动接受TCP客户的连接,(阻塞式)等待连接的到来

客户端套接字函数
s.connect()     主动初始化TCP服务器连接
s.connect_ex()  connect()函数的扩展版本,出错时返回出错码,而不是抛出异常

公共用途的套接字函数
s.recv()            接收TCP数据
s.send()            发送TCP数据(send在待发送数据量大于己端缓存区剩余空间时,数据丢失,不会发完)
s.sendall()         发送完整的TCP数据(本质就是循环调用send,sendall在待发送数据量大于己端缓存区剩余空间时,数据不丢失,循环调用send直到发完)
s.recvfrom()        接收UDP数据
s.sendto()          发送UDP数据
s.getpeername()     连接到当前套接字的远端的地址
s.getsockname()     当前套接字的地址
s.getsockopt()      返回指定套接字的参数
s.setsockopt()      设置指定套接字的参数
s.close()           关闭套接字

面向锁的套接字方法
s.setblocking()     设置套接字的阻塞与非阻塞模式
s.settimeout()      设置阻塞套接字操作的超时时间
s.gettimeout()      得到阻塞套接字操作的超时时间

面向文件的套接字的函数
s.fileno()          套接字的文件描述符
s.makefile()        创建一个与该套接字相关的文件

 

标签:socket,python,SOCK,TCP,参数,send,模块,接字
From: https://www.cnblogs.com/dingbj/p/socket.html

相关文章

  • python 循环中 无法释放占用内存
    问题python循环里无法释放占用内存即使手动删除del对象再调用gc回收也无法释放内存以为你del只能强引用的计数器设为-1但是gc回收时会重新检查代码中的引......
  • 实验四 Web服务器1-socket编程
    任务详情基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:time服务器的客户端服务器,提交程序运行截图echo服务器的客户端服务器,提交程序运行截图,服务器把客......
  • Python读取csv文件
    1.CSV逗号分隔值,英文全称Comma-SeparatedValues,缩写CSV,有时也称字符分隔值,因为字符分隔值也可以不是逗号,CSV文件以纯文本形式存储表格数据(数字和文本).纯文本意味......
  • python列表处理操作
    1、总结增、删、改、查list=[1,"xiaoming","atao","quangege",10,"a"]#列表增list.append("10")#列表尾部增加list.insert(1,"xxxx")#指定位置增加print(lis......
  • 【NLP开发】Python实现聊天机器人
    文章目录​​1、简介​​​​2、ELIZA​​​​2.1ElizaTest(java)​​​​2.2wadetb/eliza(python)​​​​2.3eliza-py(python)​​​​2.4nltk.chat.eliza(python)​​​​2.......
  • Python 对称加密的使用
    对称加密概述:对称加密就是加密和解密使用同一个密钥;就好比.我要给你邮寄一个箱子.上面怼上锁.提前我把钥匙给了你一把,我一把.那么我在邮寄之前就可以把箱子锁上.然......
  • n1_python数据分析
    1.Python语言及其特征优点:代码编写效率高;程序代码可读性强;可扩展性强;属于解释型语言,支持动态数据类型。缺点:①属于解释型语言,代码执行速度较慢;②在移动终端类应用......
  • 进入python的世界_day42_前端——何为前端、HTTP、HTML、head和body以及常用标签
    一、前端1.何为前端​ 与用户打交道的操作界面即为前端,一般都是做了美化的2.前端核心基础HTML>>>:网页的骨架CSS>>>:网页的样式JS>>>:网页的动态(比如说滑动......
  • Python threading Thread多线程的使用方法
    PythonthreadingThread多线程的使用方法目录​​PythonthreadingThread多线程的使用方法​​​​1.使用Threading模块创建线程​​​​2.Thread线程同步​​​​3.使用......
  • python用ARIMA模型预测CO2浓度时间序列实现|附代码数据
    全文下载链接:http://tecdat.cn/?p=20424时间序列为预测未来数据提供了方法。根据先前的值,时间序列可用于预测经济,天气的趋势。时间序列数据的特定属性意味着通常需要专门......