介紹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