热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python文件传输模块_python基础基于套接字进行文件传输、异常处理、socketserver模块...

异常处理:什么是异常处理:程序在运行过程中出现了不可预知的错误,并且该错误没有对应的处理机制,那么就会以异常的形式表现出来&

异常处理:

什么是异常处理:

程序在运行过程中出现了不可预知的错误,并且该错误没有对应的处理机制,那么就会以异常的形式表现出来,造成的影响就是整个程序无法再正常运行

异常的结构:

异常的类型、异常的信息、异常的位置

异常的种类:

1、语法错误

是你程序能立刻解决的,这种错误是不能被容忍的,语法上的错误发现之后应该立刻解决

2、逻辑错误

逻辑错误无法一眼就看出来,因为是针对逻辑上的错误,可以采用异常处理机制进行捕获

常见的报错类型:

NAMEERROR 名字错误

SynataxERROR  语法错误

KeyERROR  键不存在

ValueError  值错误

IndexError  索引错误

如何避免:

异常处理:

在你认为可能会出现bug的代码块上方try一下,注意try内部的代码块要越少越好。

try:#可能出现错误的代码块

pass

except 出错的类型 as e: #将报错的信息赋值给变量e

pass

#出错之后的处理机制

UDP通信:数据报协议(自带报头), 没有双向通道,通信类似于发短信

1、udp协议客户端允许发空

2、udp协议不会粘包

3、udp协议服务端不存在的情况下,客户端照样不会报错

4、udp协议支持并发

并发:看起来像是同时运行

并行:真正意义上的同时运行

socketserver:

UDP的服务端:

importsocketserverclassMyServer(socketserver.BaseRequestHandler):defhandle(self):#print('来啦 老弟')

whileTrue:

data,sock=self.requestprint(self.client_address) #客户端地址

print(data.decode('utf-8'))

sock.sendto(data.upper(),self.client_address)if __name__ == '__main__':"""只要有客户端连接 会自动交给自定义类中的handle方法去处理"""server= socketserver.ThreadingUDPServer(('127.0.0.1',8080),MyServer) #创建一个基于TCP的对象

server.serve_forever() #启动该服务对象

UDP的客户端:

importsocketimporttime

client= socket.socket(type=socket.SOCK_DGRAM)

server_address= ('127.0.0.1',8080)whileTrue:

client.sendto(b'hello',server_address)

data,addr= client.recvfrom(1024)print(data.decode('utf-8'),addr)

time.sleep(1)

TCP的服务端:

importsocketserverclassMyServer(socketserver.BaseRequestHandler):defhandle(self):#print('来啦 老弟')

whileTrue:

data= self.request.recv(1024)print(self.client_address) #客户端地址

print(data.decode('utf-8'))

self.request.send(data.upper())if __name__ == '__main__':"""只要有客户端连接 会自动交给自定义类中的handle方法去处理"""server= socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyServer) #创建一个基于TCP的对象

server.serve_forever() #启动该服务对象

TCP的服务端:

importsocket

client=socket.socket()

client.connect(('127.0.0.1',8080))whileTrue:

client.send(b'hello')

data= client.recv(1024)print(data.decode('utf-8'))



推荐阅读
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
author-avatar
mobiledu2502934511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有