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

    嵌入式Linux网络通信实验.doc

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

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

    嵌入式Linux网络通信实验.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date嵌入式Linux网络通信实验飞洒地方淮阴工学院Linux操作系统及嵌入式应用实验报告系(院): 计算机工程学院 专 业:计算机科学与技术(物联网工程)班 级: 物联网1111 姓 名: 蒋振 学 号:1111307116指导教师: 孙成富 学年学期: 2014 2015 学年 第 1 学期实验1 Socket全双工通信实验1 实验目的1) 了解网络套接字编程2) 掌握网络通信服务器和客户端的工作过程3) 利用多线程实现全双工通信4) 下载并运行网络应用程序2 实验环境1) 宿主机:Fedora 102) 嵌入式Linux软硬件系统:TQ2440(基于S3C2440A)开发板3 实验准备3.1 Linux下的多线程编程进程是程序执行时的一个实例,即它是程序已经执行到何种程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。本实验使用多线程解决了并行通信的难题。关于多线程的函数主要是使用pthread.h头文件中定义的多线程操作函数,如pthread_create、pthread_cancel等。3.2 TCP/IP概述3.2.1 TCP/IP的分层模型OSI协议参考模型,是基于国际标准化组织(ISO)的建议发展起来的,它分为7个层次:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。这个7层的协议模型虽然规定得非常细致和完善,但在实际中却得不到广泛的应用,其重要的原因之一就在于它过于复杂。但它仍是此后很多协议模型的基础。与此相区别的TCP/IP协议模型将OSI的7层协议模型简化为4层,从而更有利于实现和使用。 TCP/IP的协议参考模型和OSI协议参考模型的对应关系如下图 1所示:图1 TCP/IP协议与OSI协议参考模型对比图3.2.2 TCP的三次握手TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后进行数据通信,最后拆除连接三个过程。TCP在建立连接时又分三步走:第一步(A->B):主机A向主机B发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号;第二步(B->A):主机B在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示主机B的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgment)。 第三步(A->B):主机A也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。 3.3 套接字(socket)概述3.3.1 套接字类型1) 流式套接字(SOCK_STREAM)流式套接字提供可靠的、面向连接的通信流;它使用TCP协议,从而保证了数据传输的可靠性和顺序性。2) 数据报套接字(SOCK_DGRAM)数据报套接字定义了一种无可靠、面向无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证是可靠、无差错的。它使用数据报协议UDP3) 原始套接字(SOCK_RAW)原始套接字允许对底层协议如IP或ICMP进行直接访问,它功能强大但使用较为不便,主要用于一些协议的开发。3.3.2 套接字编程使用TCP时Socket编程流程图如图2所示。图2 TCP时Socket编程流程图使用UDP时Socket编程如图3所示。图3 TCP时Socket编程流程图4 实验过程4.1 简单的Socket通信程序设计在Fedora 10操作系统的/home目录下创建NetCommunicator目录,并新建client.c和server.c源文件,NetCommunicator目录如图4所示。图4 NetCommunicator截图分别编写Socket通信的客户端和服务器端源代码。编写完毕,使用gcc编译上述client.c和server.c源文件生成client和server可执行程序(x86平台),编译过程如图5所示。使用arm-linux-gcc编译上述client.c和server.c源文件生成a_client和a_server可执行程序(ARM平台)。编译过程如图6所示.图5 编译x86 Socket通信程序过程截图图6 编译ARM平台的可执行程序PC机测试,测试结果如下图所示:图7 执行服务器端程序图8 执行客户端程序图9 服务器端接收到客户端发来的消息截图使用gcc-linux-gcc生成ARM平台下的可执行程序a_client和a_server,编译结果如图10所示。图10 编译ARM平台可执行程序4.2 全双工Socket通信程序设计为了实现全双工通信,服务端进程和客户端进程均使用了两个线程,一个负责收,另一个负责发。在NetCommunicator目录,并新建clientV2.c和serverV2.c源文件,如图11所示,编写完毕,编译通过生成clientV2和serverV2可执行程序。图11 NetCommunicator工作目录PC机测试,测试结果如下图所示:图12 客户端进程图13 服务器端进程5 实验总结通过本次实验,了解了Linux环境下的Socket程序设计流程,对网络编程有了一定的了解,提高了动手实践的能力。-

    注意事项

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

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




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

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

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

    收起
    展开