介绍soCket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Intemet相关的程序,但是为你在调用connect()前的bind)的结构而不知所措?等等…好在我已经将这些事完成了,我将和所有人共享我的知识了。如果你了解C语言并想穿过网络编程的沼泽,那么你来对地方了。读者对象这个文档是一个指南,而不是参考书。如果你刚开始soCket编程并想找一本入门书,那么你是我的读者。但这不是一本完全的soCket编程书。平台和编译器这篇文档中的大多数代码都在Linux平台PC上用GNU的gcc成功编译过。面且它们在HPUX平台上用gcc也成功编译过。但是注意,并不是每个代码片段都独立测试过。
上传时间: 2022-06-23
上传用户:
摘要:介绍在Linux操作系统环境下soCket网络编程的原理、流程和最终实现。编程采用客户端/服务器模式。提出解决多个客户端连接服务器时无法处理I/0多路复用问题的方法。提出通过最小化报文传输来减少传输时廷,为Bandwidth Delay Product调节TCP窗口,实现充分利用带宽提高Linux的soCket性能。在实际网络传输环境复杂多变的情况下,达到优化网络传输性能的目的。关键词:linux;性能优化;soCket;select()1引言随着Internet的日益发展和普及,网络在嵌入式系统中应用非常广泛,越来越多的嵌入式设备采用Linux操作系统。Linux是一个源代码公开的免费操作系统,具有强移植性",所以对基于Linux的soCket网络编程的研究越来越重要。2soCket简介在Linux中的网络编程通过soCket接口进行,是一种特殊的I/O,也是一种特殊的文件描述符。soCket是使用标准Linux文件符(file descriptor)和其他程序通信的方式。这里soCket 编程采用客户/服务器模式如图1所示。
上传时间: 2022-06-23
上传用户:
在soCket应用开发中,还有一个话题是讨论的比较多的,那就是数据接收后如何处理的问题。这也是一个令刚接触soCket开发的人很头疼的问题。因为soCket的TCP通讯中有一个“粘包”的现象,既:大多数时候发送端多次发送的小数据包会被连在一起被接收端同时接收到,多个小包被组成一个大包被接收。有时候一个大数据包又会被拆成多个小数据包发送。这样就存在一个将数据包拆分和重新组合的问题。那么如何去处理这个问题呢?这就是我今天要讲的通讯协议。所谓的协议就是通讯双方协商并制定好要传送的数据的结构与格式。并按制定好的格式去组合与分析数据。从而使数据得以被准确的理解和处理。那么我们如何去制定通讯协议呢?很简单,就是指定数据中各个字节所代表的意义。比如说:第一位代表封包头,第二位代表封类型,第三、四位代表封包的数据长度。然后后面是实际的数据内容。
上传时间: 2022-06-23
上传用户:默默
图像的采集和传输是实时监控、远程控制、智能小区等诸多领域的关键技术。基于传统:PC的图像采集已成为现实。随着信息技术的迅速发展,嵌入式系统的研究开发成为了后PC时代的一个热点,它被广泛应用于工业现场、信息家电等各行各业。同时,图像的远程采集传输也朝着专业化、多样化和低成本的方向发展。利用嵌入式技术来实现图像的远程采集传输正顺应了时代发展,有较大的实用价值。 本文主要研究了基于嵌入式的远程图像采集传输系统。嵌入式终端采用$3C2410为核心的目标板为硬件平台,采用嵌入式Linux为系统平台。系统通过连接在嵌入式终端的USB摄像头完成静态图像数据采集,并进行图像压缩处理。在图像传输方面,论文设计了两种模式:一种是通过Intemet传输的、基于B/S模式的传输方式。在该模式下,远端客户机通过浏览器访问架设在终端里的嵌入式服务器而获得图像信息。另一种是基于GPRS网络实现远程无线图像传输。终端将采集到的图像数据通过GPRS网络发送到拥有固定Ip的监控服务器上来完成图像远程传输。 本文首先介绍了图像采集传输和嵌入式方面的相关内容,并介绍了本论文所采用的开发平台。为了顺利开发接着构建了开发环境,这里包括U-boot的移植、Linux系统的内核编译和移植、设备驱动模块的加载以及交叉编译环境的建立。在此基础上,利用Vide04Linux的接口函数,用C语言实现了图像原始数据的采集程序,并利用JPEG算法了实现图像压缩。在基于B/S模式的传输方式中,首先利用Boa架设了嵌入式服务器,然后用C语言完成CGI脚本,该脚本将图像嵌入网页并实时更新以实现网页的动态输出。在基于GPRS实现远程无线图像传输方式中,论文详细分析了系统通讯数据流的特征,提出了采用辨识特征字符、数据打包等策略以实现GPRS的网络连接和数据通讯,并且在此基础上用C语言编程实现。同时,在PC(Linux)上用soCket编程实现了监控服务器软件,该软件用以接收图像数据和控制嵌入式终端的系统状态。最后,论文分析比较了两种传输方式的区别和优缺点。试验证明,采用两种方式都能成功实现图像的远程采集传输,并且试验效果较好。
上传时间: 2013-05-17
上传用户:squershop
工程机械监控系统是利用计算机技术、现场总线技术、无线通信技术以及卫星定位技术对工程机械的运行状态、位置等进行监测,是一个既复杂又庞大的系统,涉及的领域广,而且由于其工作环境的特殊性,对系统的安全性、稳定性要求特别高。现在随着嵌入式技术的不断成熟与发展,高可靠性、小型化、人性化、网络化和智能化将是其发展方向。 本文采用底层单元控制系统、车载监控系统和远程监控系统三级网络总体结构,对起重机底层安全控制单元进行监控。在底层单元中引入CAN总线,研究基于CAN总线协议的Hilon A协议实现底层各单元的通信。中间层以S3C2410和Linux为核心,融合嵌入式技术,开发Qt.Embedded界面,对实时采集起重机的吊重、风速、仰角信号状态参数,以及通过计算比较判断是否发生异常的状态进行显示。最后研究了GPRS网络,完成远程数据传输和远程终端监控的通讯。 文中详细介绍了系统的各部分硬件设计,结合硬件平台实现了Linux操作系统的移植、引导加载程序BootLoader,构建了根文件系统。结合Linux操作系统平台,实现了CAN总线通信、GPRS通讯、PPP脚本拨号、soCket网络编程、LCD帧缓冲显示设备Framebuffer、触摸屏、A/D转换器驱动程序的开发,并通过嵌入式图形用户Qt/Embedded在嵌入式Linux平台上的移植,开发了友好的人机交互界面。
上传时间: 2013-06-30
上传用户:康郎
随着电子技术的不断发展,各种智能核仪器逐步走向自动化、智能化、数字化和便携式的方向发展。针对传统的多道脉冲幅度分析器体积大,人机交互不友好,不方便现场分析等的缺陷[5]。新型的高速、集成度高、界面友好的多道脉冲幅度分析器的陆续出现填补了这一缺点。 随着电子技术的发展,以ARM为核的处理器技术的应用领域不断扩大,相比较单片机而言,它的主频高、运算速度快,可以满足多道脉冲幅度分析器的苛刻的时间上的要求。而且ARM处理器功耗小,适合于功耗要求比较苛刻的地方,这些方面的特点正好满足了便携式多道脉冲幅度分析器野外勘察的要求。同时,由于以ARM为核的处理器具有丰富的外设资源,这样就简化了外设电路及芯片的使用,降低了功耗并增强了产品的信赖性。另外,ARM芯片可以方便的移植操作系统,为多道脉冲幅度分析器多任务的管理和并行的处理,甚至硬实时功能的实现提供了前提。而且在ARM平台使用嵌入式linux操作系统使多道脉冲幅度分析器的软件易于升级。 智能化和小型化是多道脉冲幅度分析器的发展趋势。智能化要求系统的自动化程度高、操作简便、容错性好。智能化除了需要控制软件外,还需要软件命令的执行者即硬件控制电路来实现相应的控制逻辑,两者的结合才能真正的实现智能化。小型化要求系统的体积小、功耗小、便于携带;小型化除了要求采用微功耗的器件,还要求电路板的尺寸尽量的小且所用元件尽量的少,但小型化的同时必须保持系统的智能化,即不能减少智能化所要求的复杂的逻辑和时序的控制功能。为此采用高集成度的ARM芯片实现控制电路能满意地同时满足智能化和小型化的要求。在研制的多道脉冲幅度分析器中,几乎所有的控制都可以用控制芯片来实现,如阈值设定、自动稳谱以及多道数据采集,在节省了元件的数目和电路板的尺寸的同时仍能保持系统的智能化程度。 Linux内核精简而高效,可修改性强,支持多种体系结构的处理器等,使得它是一个非常适合于嵌入式开发和应用的操作系统。嵌入式Linux可以运行的硬件平台十分广泛,从x86、MIPS、POWERPC到ARM,以及其他许多硬件体系结构。目前在世界范围内,ARM体系结构的SOC逐渐占领32位嵌入式微处理器市场,ARM处理器及技术的应用几乎已经深入到各个领域,例如:工业控制,无线通讯,网络,消费类电子,成像等。 本课题采用三星公司生产的ARM(Advanced RISC Machines,先进精简指令集机器)芯片S3C2410A设计并研制了一种便携式的核数据采集系统设计方案。利用ARM芯片丰富的外设资源对传统的多道脉冲幅度分析器进行改进和简化。系统由前端探测器系统,以及由线性脉冲放大器、甄别电路、控制电路、采样保持电路组成的前置电路,中央处理器模块,显示模块,用户交互模块,存储模块,网络传输模块等多个模块组成。本设计基于ARM9芯片S3C2410,并在此平台上移植了嵌入式linux操作系统来进行任务的调度和处理等。 电路板核心板部分设计采用6层PCB板结构,这样增加了系统可靠性,提高了电磁兼容的稳定性。数据采集系统是多道脉冲幅度分析器的核心,A/D转换直接使用了S3C2410内置的ADC(Analog to Digital Converter,模数转换器),在2.5 MHz的转换时钟下最大转换速度500 KSPS(Kilo-Samples per second,千采样点每秒),满足了系统最低转换时间≤5 μs的要求,并且控制简单,简化了外部接口电路。由于SD(Secure Digital Card,安全数码卡)卡存储容量大、携带方便、成本低等优点,所以设计中采用其作为外部的数据存储设备,其驱动部分采用SD卡软件包,为开发带来了方便。本设计采用640*480的6.4寸LCD(Liquid Crystal Display,液晶显示)屏作为人机交互的显示部分,并且通过Qt/Embedded为系统提供图形用户界面的应用框架和窗口系统。其中包括了波形显示部分和用户菜单设置部分,这样方便了用户操作。系统的数据存取方面是基于SQLite嵌入式小型数据库而进行的。为了方便数据向上位机的传输,系统设计中采用XML(Extensible Markup Language,可扩展标记语言)格式来组织传输的数据,通过基于TCP/IP(Transmission Control Protocol/Internet Protocol)协议的Linux下soCket套接字编程,来进行与上位机或PC(Personal Computer,个人计算机或桌面机)等的连接和数据传输。
上传时间: 2013-04-24
上传用户:tzl1975
嵌入式技术与GPRS、GPS的结合实现了许多传统的数据终端通过远程联网进行无线监控,如车载GPS监控系统、农业现场环境信息监控系统、航标定位监控系统等等。此类系统的终端具有以下特点:一是监控终端自身是智能设备:二是监控终端需要将GPS测量的位置报告给监控中心;三是监控终端本身无法通过网线接入互联网而需要采用GPRS无线通信技术接入互联网。 本论文主要研究GPS无线监控系统中的无线监控终端部分的理论与实现技术。利用现有成熟的无线网GPRS通信技术,采用嵌入式处理器ARM的无线监控终端,并给出软硬件实现方案。系统主要完成GPS数据采集和GPRS无线数据收发,主要包括四个部分:第一,PPP拨号程序pppd和chat的移植;第二,拨号脚本的修改与配置;第三,多进程技术实现GPS数据的串口读取;第四,通过soCket套接字编程实现监控终端和监控中心无线收发数据。 本设计是基于RedHatLinux9.0操作系统和立宇泰公司的ARMSYS2410开发平台下完成的,软件部分全部用Linux C语言实现。本文以理论联系实际,给出了一个监控终端的具体实现方案,并在实验室内使用服务器监控程序进行完整的系统设计与初步仿真实现。
上传时间: 2013-07-06
上传用户:aappkkee
随着计算机、通信、电子技术的进步,嵌入式系统和以太网技术的融合将成为嵌入式技术未来的重要发展方向。基于ARM的嵌入式系统由于具有低功耗、高性能、低成本、可以进行多任务操作等优点,在控制领域得到了越来越广泛的应用。 本选题来自中山大学与北京航天五院合作研制的流体网络系统地面原理样机控制器设计项目。论文研究的主要目的是利用基于ARM920T内核的嵌入式微处理器AT91RM9200融合多传感器设计一种可以在地面实验室环境中可靠运行的数据采集与温度控制系统。 本文从嵌入式测控系统的硬件实现和软件设计两方面进行分析。在硬件设计上,主控制板以Atmel公司生产的AT91RM9200 CPU为核心,主要包括串口模块、存储模块、以太网接口模块、基于SPI串行接口设计的数据采集模块(A/D)、基于I2C接口设计的PID控制信号输出模块(D/A)和采用PIO接口设计的开关控制输出模块等电路,其中后三个模块承担了流体网络回路的传感器数据采集,关键点的温度控制和多路电磁阀的开关控制等任务,后文将重点介绍。在软件设计方面,主要分两个方面进行讨论,分别为主控制器上基于嵌入式Linux系统的软件和上位机采用Visual C++编写的监控软件。主控制器软件采用多线程进行设计,包括主线程、服务器子线程和数据采集子线程,三个线程同时运行,提高了系统的运行效率。上位机和主控制器通过接入以太网中,然后由服务器线程和上位机客户端利用soCket套接字实现通信。同时上位机软件也提供形象美观的图形用户界面,配合主控制器实现特定的温度、流量和压力监控。 本论文设计的嵌入式测控系统充分利用了AT91RM9200内嵌的的强大功能模块,包括SPI接口模块和I2C接口模块等,可广泛应用于控制领域。对该系统的一些研究成果和设计方法具有一定的先进性和良好的实用性,具有良好的应用前景。
上传时间: 2013-06-30
上传用户:hmy2st
随着通信技术飞速发展和直放站的广泛应用,直放站监控系统在实时监测直放站的工作状态和远程控制方面发挥了重大作用,然而当前的直放站监控系统多采用单片机作为主控制器,通过GSM网络或PSTN网络传输监控数据,随着直放站监控系统日益复杂化,目前的直放站监控系统显得处理速度慢,处理的任务有限,远程传输数据效率不高;为了改善当前直放站监控系统现有的这些缺点,采用新的主控制器ARM7系列芯片,利用新的传输数据技术GPRS,设计并实现了一款光纤直放站监控系统。 在充分研究当前直放站监控系统发展现状和实现技术的基础上,根据《中国移动直放站监控系统数据需求规范》对监控参数和功能设置的要求,论证了光纤直放站监控系统的整体设计方案和监控终端的实现架构,选择了PHILIPS的ARM7芯片LPC2134作为主控制器,选择了SIMCOM300作为远程通信模块;详细介绍了光纤直放站监控系统监控终端的硬件电路设计,阐释了监控终端嵌入软件的设计思路流程,分析了如何把嵌入式软件开发技术和GPRS远程数据传输的技术运用到项目实践中去,说明了监控系统中所用的通信协议,并且利用VC++开发环境,采用soCket网络编程技术和ADO数据库开发技术,设计了光纤直放站监控系统监控中心应用软件。 经过实验验证,该设备运行结果良好,提高了光纤直放站的稳定性和可靠性,光纤直放站监控系统监控终端处理任务的能力得到增强,远程传输数据速度变快,传输数据所耗费用降低,为光纤直放站系统的监控提供了一种新的设计实现。
上传时间: 2013-08-02
上传用户:aa17807091
本文在结合全球卫星定位系统(GPS)和通用分组无线业务(GPRS)的基础之上,利用嵌入式开发技术,采用ARM9为核心,设计开发了一个基于ARM和Linux的功能强大的车载监控终端。嵌入式车载监控终端是车载监控系统的重要组成部分。车载监控终端主要由GPS定位模块、ARM监控终端和GPRS通讯模块构成。GPS定位模块主要是接收来自定位卫星的GPS信号,传送给ARM监控终端,监控终端对数据解析后将位置信息与电子地图匹配显示在监控终端的LCD屏上,并定时通过GPRS模块向后台监控中心发送GPS定位数据实现实时监控,同时GPRS模块也接收从后台监控中心发来的指令,通过解析从而控制车载终端本地工作实现特定的功能。本文首先对车载监控系统的组成、功能以及关键技术进行了分析;然后阐述了车载监控终端硬件设计及实现方法;最后完成了车载监控终端的应用软件的设计及实现。软件上采用模块化结构、多线程编程和soCket编程技术,实现了多通道高速数据获取。 实验结果证明,基于ARM和Linux的车载监控终端定位精度高,实时性好,数据传输及时可靠,实现了监控的基本功能,可以满足实用化要求。
上传时间: 2013-06-17
上传用户:杜莹12345