欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第9章网络编程和多线程.ppt

    • 资源ID:77579412       资源大小:575.50KB        全文页数:17页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第9章网络编程和多线程.ppt

    第第9章章 网络编程和多线程网络编程和多线程主讲主讲 夏敏捷夏敏捷计算机学院副教授计算机学院副教授9.1 网络编程基础9.1.1 9.1.1 互联网互联网TCP/IPTCP/IP协议协议IP协议负责把数据从一台计算机通过网络发送到另一台计算机。数据被分割成一小块一小块,然后通过IP包发送出去。由于互联网链路复杂,两台计算机之间经常有多条线路,因此,路由器就负责决定如何把一个IP包转发出去。IP包的特点是按块发送,途径多个路由,但不保证能到达,也不保证顺序到达。IP地址实际上是一个32位整数(称为IPv4),以字符串表示的IP地址如192.168.0.1实际上是把32位整数按8位分组后的数字表示,目的是便于阅读。9.1.2 IP协议TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果包丢掉了,就自动重发。许多常用的更高级的协议都是建立在TCP协议基础上的,比如用于浏览器的HTTP协议、发送邮件的SMTP协议等。UDP协议,同样是建立在IP协议之上,但是UDP协议面向无连接的通信协议,不保证数据包的顺利到达,不可靠传输。所以效率比TCP要高。9.1.3 TCP和UDP协议网络上两个计算机之间的数据通信,归根到底就是不同主机的进程交互,而每个主机的进程都对应着某个端口。也就是说,单独靠IP地址的无法完成通信的,必须要有IP和端口。9.1.4 端口Socket是网络编程的一个抽象概念。Socket是套接字的英文名称,主要是用于网络通信编程。80年代初,美国政府的高级研究工程机构(ARPA)给加利福尼亚大学Berkeley分校提供了资金,让他们在UNIX操作系统下实现TCP/IP协议。在这个项目中,研究人员为TCP/IP网络通信开发了一个API(应用程序接口)。这个API称为Socket(套接字)。Socket是TCP/IP网络最为通用的API。任何网络通讯都是通过Socket来完成的。9.1.5 Socket例如创建TCP Socket:s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)创建UDP Socket:s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)日常生活中大多数连接都是可靠的TCP连接。创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器。9.2.1 TCP9.2.1 TCP客户端编程客户端编程【例9-1】访问新浪的TCP客户端程序。9.2 TCP编程9.2.2 TCP服务器端编程服务器端和客户端编程相比,服务器编程就要复杂一些。服务器端进程首先要绑定一个端口并监听来自其他客户端的连接。如果某个客户端连接过来了,服务器就与该客户端建立Socket连接,随后的通信就靠这个Socket连接了。【例9-2】编写一个简单的TCP服务器程序,它接收客户端连接,把客户端发过来的字符串加上Hello再发回去。图图9-4 9-4 服务器程序服务器程序效果效果 图图9-5 9-5 客户端程序效果客户端程序效果9.3 UDP编程【例9-3】编写一个简单的UDP演示下棋程序。服务器端把UDP客户端发来的下棋x,y坐标信息显示出来,并把x,y坐标加1后(模拟服务器端下棋),再发给UDP客户端。9.4 多线程编程线程是操作系统可以调度的最小执行单位,够执行并发处理。通常是将程序拆分成2个或多个并发运行的线程,即同时执行多个操作。例如,使用线程同时监视用户并发输入,并执行后台任务等。1 1概念概念进程是操作系统中正在执行的应用程序的一个实例,操作系统把不同的进程(即不同程序)分离开来。每个进程至少包含一个线程,它从程序开始执行,直到退出程序,主线程结束,该进程也被从内存中卸载。主线程在运行过程中还可以创建新的线程,实现多线程的功能。9.4.1 进程和线程9.4.1 进程和线程2 2多线程优点多线程优点多线程类似于同时执行多个不同程序,多线程运行有如下优点:(1)使用线程可以把占据长时间的程序中的任务放到后台去处理。(2)用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度(3)程序的运行速度可能加快(4)在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。9.4.2 创建线程Python中使用线程有两种方式:函数或者用类来创建线程对象。1 1start_new_thread()start_new_thread()函数创建线程函数创建线程调用_thread模块中的start_new_thread()函数来产生新线程。格式如下:_thread.start_new_thread(function,args,kwargs)【例9-4】使用thread模块中的start_new_thread()函数来创建线程。2 2ThreadThread类创建线程类创建线程threading线程模块封装了_thread模块,并提供更多功能,虽然可以使_thread模块中start_new_thread()函数创建线程,但建议使用threading模块。threading模块提供了Thread类来创建和处理线程,格式如下:线程对象=threading.Thread(target=线程函数,args=(参数列表),name=线程名,group=线程组)线程名和线程组都可以省略。【例9-5】使用threading.Thread类来创建线程例子。9.4.3 线程同步如果多个线程共同对某个数据修改,则可能出现不可预料的结果,为了保证数据的正确性,需要对多个线程进行同步。使用Threading的Lock(指令锁)和Rlock(可重入锁)对象可以实现简单的线程同步。【例9-7】使用指令锁实行多个线程同步。9.4.4 定时器Timer定时器(Timer)是Thread的派生类,用于在指定时间后调用一个函数,具体方法如下:timer=threading.Timer(指定时间t,函数f)timer.start()执行timer.start()后,程序会在指定时间t后启动线程执行函数f。【例9-8】使用定时器Timer的例子。import threadingimport timedef func():print(time.ctime()#打印出当前时间print(time.ctime()timer=threading.Timer(5,func)timer.start()该程序可实现延迟5秒后调用func方法的功能。9.5 网络编程案例Python在线聊天程序采用TCP连接用实现的一个在线聊天程序,主要功能是实现客户端与服务器端的双向通信。运行效果如图9-8所示。在线聊天服务器端在线聊天的客户端在线聊天的客户端

    注意事项

    本文(第9章网络编程和多线程.ppt)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开