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

    2023年网络编程实习报告.docx

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

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

    2023年网络编程实习报告.docx

    2023年网络编程实习报告 实习目的 通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,并为自己能顺利与社会环境接轨做准备。实习任务Linux下网络服务器开发(基于C语言);本文总结了我对Linux下网络服务器模型的认识。实习内容一.循环服务器1.循环服务器在同一个时刻只可以响应一个客户端的请求,对多个客户程序的处理是采用循环的方式进行; 2.UDp循环服务器的实现非常简单:UDp服务器每次从套接字上读取一个客户端的请求,处理, 然后将结果返回给客户机;2.1.算法如下(UDp服务器): socket(.); bind(.); while(1) recvfrom(.); proce(.); sendto(.); 3.TCp循环服务器的实现也不难:TCp服务器接受一个客户端的连接,然后处理,完成了这个客户的所有请求后,断开连接;3.1.算法如下(TCp服务器): socket(.); bind(.); listen(.); while(1) accept(.); while(1) read(.); proce(.);write(.); close(.); 3.2.TCp循环服务器一次只能处理一个客户端的请求.只有在这个客户的所有请求都满足后, 服务器才可以继续后面的请求.这样如果有一个客户端占住服务器不放时,其它的客户机都不能工作了.因此,TCp服务器一般很少用循环服务器模型的.二.并发服务器1.为了弥补循环TCp服务器的缺陷,人们又想出了并发服务器的模型。并发服务器的思想是每一个客户机的请求并不由服务器直接处理,而是服务器创建一个子进程来处理;2.使用并发服务器可以使服务器进程在同一个时刻有多个子进程和不同的客户程序连接、通信;在客户程序看来,服务器可以同时并发地处理多个客户的请求;3.算法如下(TCp服务器):socket(.); bind(.); listen(.); while(1) accept(.); if(fork(.)=0) close(.);while(1) read(.); proce(.); write(.); close(.); exit(.); close(.); 4.TCp并发服务器可以解决TCp循环服务器客户机独占服务器的情况,改善了对客户程序的响应速度;不过也同时带来了一个不小的问题:为了响应客户机的请求,服务器要创建子进程来处理,而创建子进程是一种非常消耗资源的操作,这明显增加了系统调度的开销;5.为了解决创建子进程带来的系统资源消耗,人们又想出了多路复用I/O模型.5.1.该模型一般用函数select和相关的四个宏定义:intselect(intfd,fd_set*readfds,fd_set*writefds,fd_set*exceptfds,structtimeval*timeout) voidFD_SET(intfd,fd_set*fdset) voidFD_CLR(intfd,fd_set*fdset) voidFD_ZERO(fd_set*fdset) intFD_ISSET(intfd,fd_set*fdset)5.2.一般的来说当我们在向文件读写时,进程有可能在读写时候阻塞,直到一定的条件满足.比如我们从一个套接字读数据时,可能缓冲区里面没有数据可读(通信的对方还没有发送数据过来),这个时候我们的读调用就会等待(阻塞)直到有数据可读.如果我们不希望阻塞,我们的一个选择是把socket设置为非阻塞模式来实现;int socketfd;socketfd=socket(AF_INET,SOCK_STREAM,0);fcntl(socketfd,F_SETFL,O_NONBLOCK);通过设置socket为非阻塞模式,可以实现“轮循”多个socket,当企图从一个没有数据等待处理的非阻塞socket读取数据时,函数立即返回,但是这种“轮循”会使CpU处于忙等待方式,降低了性能,select函数解决了这个问题;5.3.在我们调用select时进程会一直阻塞直到以下的一种情况发生.1)有文件可以读.2)有文件可以写.3)超时所设置的时间到;5.4.算法如下(多路复用I/O模型):初始化(socket,bind,listen); while(1) 设置监听读写文件描述符(FD_*); 调用select; 如果是倾听套接字就绪,说明一个新的连接请求建立 建立连接(accept); 加入到监听文件描述符中去; 否则说明是一个已经连接过的描述符 进行操作(read或者write); 多路复用I/O可以解决资源限制的问题.着模型实际上是将UDp循环模型用在了TCp上面.这也就带来了一些问题.如由于服务器依次处理客户的请求,所以可能会导致有的客户会等待很久。 三I/O模型1.网络服务器模型根据I/O模型的不同实现而来的;2.I/O模型分为同步I/O和异步I/O;同步I/O又包括阻塞I/O、非阻塞I/O、信号驱动I/O、多路复用I/O;可根据不同的要求利用不同的I/O模型实现不同是网络服务器。实习心得 通过近几个月的实习,基本上掌握了Linux下C语言网络编程的一些算法和技巧,提高了自己的能力。专业:计算机网络技术 班级:03631 学号:63103089 姓名:吕亮亮XX.05.23 网络编程实习报告 网络编程实习报告 网络编程实验报告 数控编程实习报告 数控编程实习报告 网络编程课程设计实习总结 CAXA自动编程实习报告 网络高级编程实验报告要求 数控编程的实习报告参考 计算机网络编程实习1

    注意事项

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

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




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

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

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

    收起
    展开