導航:首頁 > 源碼編譯 > tcp語言編譯器

tcp語言編譯器

發布時間:2023-07-12 08:19:09

A. 急 急 急 求一篇關於《通信網路模擬研究》的論文

幫您下了兩篇,希望對您有所幫助哦!祝您愉快!

1
題目:基於無線感測器網路模擬平台的研究
一、引言

感測器網路(WSN)日新月異,各種網路方案和協議日趨復雜,網路規模日趨龐大,對網路研究人員而言,掌握網路模擬的重要性是不言而喻的。WSN模擬能夠在一個可控制的環境里研究WSN應用,包括操作系統和網路協議棧,能夠模擬數量眾多的節點,能夠觀察由不可預測的干擾和雜訊引起的難以琢磨的節點間的相互作用,獲取節點間詳細的細節,從而提高節點投放後的網路成功率,減少投放後的網路維護工作。目前無線感測器網路使用的模擬工具主要有NS2、TinyOS、OPNET、OMNET++等等。其中TinyOS是專門針對無線感測器網路的特點而研究開發的。

二、無線感測器網路模擬簡介

在感測器網路中,單個感測器節點有兩個很突出的特點。一個特點是它的並發性很密集;另一個特點是感測器節點模塊化程度很高.上述這些特點使得無線感測器網路模擬需要解決可擴展性與模擬效率、分布與非同步特性、動態性、綜合模擬平台等等問題。

三、無線感測器網路常用模擬工具

無線感測器網路常用模擬工具有NS2、OPNET、OMNET++、TinyOS,下面我們簡要介紹它們各自的性能和特點。

3.1 NS2
NS是一種可擴展、以配置和可編程的時間驅動的模擬工具,它是由REAL模擬器發展而來.在NS的設計中,使用C++和OTCL兩種程序設計語言, C++是一種相對運行速度較快但是轉換比較慢的語言,所以C++語言被用來實現網路協議, 編寫NS底層的模擬引擎; OTCL是運行速度較慢,但可以快速轉換的腳本語言,正好和C++互補,所以OTCL語言被用來配置模擬中各種參數,建立模擬的整體結構, OTCL的腳本通過調用引擎中各類屬性、方法,定義網路的拓撲,配置源節點、目的節點建立鏈接,產生所有事件的時間表,運行並跟蹤模擬結果,還可以對結果進行相應的統計處理或制圖.NS可以提供有線網路、無線網路中鏈路層及其上層精確到數據包的一系列行為模擬。NS中的許多協議都和真實代碼十分接近,其真實性和可靠性是非常高的。

3.2 OPNET
OPNET是在MIT研究成果的基礎上由MIL3公司開發的網路模擬軟體產品。 OPNET的主要特點包括以下幾個方面:(1)採用面向對象的技術,對象的屬性可以任意配置,每一對象屬於相應行為和功能的類,可以通過定義新的類來滿足不同的系統要求; (2)OPNET提供了各種通信網路和信息系統的處理構件和模塊;(3) OPNET採用圖形化界面建模,為使用者提供三層(網路層、節點層、進程層)建模機制來描述現實的系統;(4) OPNET在過程層次中使用有限狀態機來對其它協議和過程進行建模,用戶模型及OPNET內置模型將會自動生成C語言實現可執行的高效、高離散事件的模擬流程;(5) OPNET內建了很多性能分析器,它會自動採集模擬過程的結果數據;(6)OPNET幾乎預定義了所有常用的業務模型,如均勻分布、泊松分布、歐蘭分等。

3.3 OMNET++
OMNET++是面向對象的離散事件模擬工具,為基於進程式和事件驅動兩種方式的模擬提供了支持。 OMNET++採用混合式的建模方式,同時使用了OMNET++特有的ned(Network Discription,網路描述)語言和C++進行建模。OMNET++主要由六個部分組成:模擬內核庫、網路描述語言的編譯器、圖形化的網路編譯器、模擬程序的圖形化用戶介面、模擬程序的命令行用戶介面和圖形化的向量輸出工具。OMNET++的主要模型拓撲描述語言NED,採用它可以完成一個網路模型的描述。 網路描述包括下列組件:輸入申明、信道定義、系統模塊定義、簡單模塊和復合模塊定義。使用NED描述網路,產生.NED文件,該文件不能直接被C++編譯器使用,需要首先採用OMNET++提供的編譯工具NEDC將.NED文件編譯成.cpp文件。最後,使用C++編譯器將這些文件與用戶和自己設計的簡單模塊程序連接成可執行程序。

3.4 TinyOS
TinyOS是專門針對感測器研發出的操作系統。在TinyOS上編程序使用的語言為nesC(C language for network embedded systems) 語言。

nesC語言是由C語言擴展而來的,意在把組件化/模塊化思想和TinyOS基於事件驅動的執行模型結合起來。 nesC 組件有Mole(模塊)和Configuration(連接配置文件)兩種。在模塊中主要實現代碼的編制,在連接配置文件中主要是將各個組件和模塊連接起來成為一個整體。

TinyOS程序採用的是模塊化設計,所以它的程序核心往往都很小,能夠突破感測器存儲資源少的限制,這能夠讓TinyOS很有效的運行在無線感測器網路上並去執行相應的管理工作等。TinyOS的特點主要體現在以下幾個方面:

(1)組件化編程(Componented-Based Architecture)。TinyOS的組件通常可以分為以下三類:硬體抽象組件、合成組件、高層次的軟體組件;硬體抽象組件將物理硬體映射到TinyOS組件模型.合成硬體組件模擬高級硬體的行為.高層次軟體模塊完成控制、路由以及數據傳輸等。}

(2)事件驅動模式(Event-Driven Architecture)。事件驅動分為硬體驅動和軟體事件驅動。硬體事件驅動也就是由一個硬體發出中斷,然後進入中斷處理函數。而軟體驅動則是通過singal關鍵字發出一個事件。

(3)任務和事件並發模式(Tasks And Events Concurrency Model)。任務用在對於時間要求不是很高的應用中,任務之間是平等的,即在執行時是按順序先後來的,而不能相互搶占,TinyOS對任務是按簡單的FIFO隊列進行處理的。事件用在對於時間的要求很嚴格的應用中,而且它可以佔先優於任務和其他事件執行。

(4)分段執行(Split-Phase Operations)。在TinyOS中由於tasks 之間不能互相佔先執行,所以TinyOS沒有提供任何阻塞操作,為了讓一個耗時較長的操作盡快完成,一般來說都是將對這個操作的需求和這個操作的完成分開來實現,以便獲得較高的執行效率。

(5) 輕量級線程(lightweight thread)。輕量級線程(task, 即TinyOS中的任務)按FIFO方式進行調度,輕量級線程之間不允許搶占;而硬體處理線程(在TinyOS中,稱為硬體處理器),即中斷處理線程可以打斷用戶的輕量級線程和低優先順序的中斷處理線程,對硬體中斷進行快速處理響應。

(6) 主動通信消息(active message)。每一個消息都維護一個應用層和處理器。當目標節點收到這個消息後,就會把消息中的數據作為參數,並傳遞給應用層的處理器進行處理。應用層的處理器一般完成消息數據的解包操作、計算處理或發送響應消息等工作。

TinyOS操作系統中常用的模擬平台主要是TOSSIM和Avrora

(1)TOSSIM(TinyOS simulation)是一個支持基於TinyOS的應用在PC機上運行的模擬器.TOSSIM運行和感測器硬體相同的代碼,模擬編譯器能直接從TinyOS應用的組件表中編譯生成模擬程序。

(2)Avrora是一種專門為Atmel和Mica2節點上以AVR單片機語言編寫的程序提供模擬分析的工具。它的主要特點如下:1) 為AVR單片機提供了cycle accurate級的模擬,使靜態程序可以准確的運行。它可以模擬片上(chip-on)設備驅動程序,並為片外(off-chip)程序提供了有規則的介面;2)可以添加監測代碼來報告模擬程序運行的性能,或者可以在模擬結束後收集統計數據,並產生報告;3)提供了一套基本的監控器來剖析程序,這有助於分析程序的執行模式和資源使用等等;4)Avrora可以用gdb調試程序;5) Avrora可以為程序提供一個程序流圖,通過這個流程圖可以清楚的表示機器代碼程序的結構和組織;6) Avrora中提供了分析能量消耗的工具,並且可以設置設備的帶電大小;7) Avrora可以用來限製程序的最大堆棧空間,它會提供一些關於目前程序中的最大的堆棧結構,和一些關於空間和時間消耗的信息報告。

3.5性能比較

TinyOS 用行為建模,可以模擬跨層協議;模擬程序移植到節點上,不需要二次編碼。
通過對上述幾種模擬軟體的分析比較,我們可以清楚的看到各個模擬軟體的特點、適用范圍,我們可以根據研究需要選擇適合的模擬軟體,使得我們的學習研究可以事半功倍。

結束語

網路模擬技術為通信網路規劃和優化提供了一種科學高效的方法。網路模擬在國內是近幾年才發展起來的,但在國外網路模擬技術已經相當成熟,我們應該大膽地借鑒國外先進技術,促進國內網路模擬技術迅速發展。

參考文獻
【1】於海斌,曾鵬等.智能無線感測器網路.科學出版社,2006,p283~p303,
【2】石懷偉,李明生,王少華,網路模擬技術與OPNET應用實踐,計算機系統應用2006.第3期
【3】李玥,吳辰文,基於OMNeT++地TCP/IP協議模擬,蘭州交通大學學報(自然科學版),2005年8月
【4】袁紅林,徐晨,章國安,TOSSIM:無線感測器網路模擬環境,感測器與儀表儀器 ,2006年第22卷第7-1期

2

集群虛擬伺服器的模擬建模研究

來源:電子技術應用 作者:楊建華 金笛 李燁 寧宇

摘要:闡述了集群虛擬伺服器的工作原理和三種負載均衡方式,通過實例討論了虛擬伺服器的模擬和建模方法,創建了測試和模擬系統性能的輸入和系統模型,並依據Q—Q圖和累積分布函數校驗了其概率分布。

關鍵詞:集群虛擬伺服器負載均衡模擬建模概率分布

隨著互聯網訪問量和數據流量的快速增長,新的應用層出不窮。盡管Intemel伺服器處理能力和計算強度相應增大,但業務量的發展超出了先前的估計,以至過去按最優配置建設的伺服器系統也無法承擔。在此情況下,如果放棄現有設備單純將硬體升級,會造成現有資源的浪費。因此,當前和未來的網路服務不僅要提供更豐富的內容、更好的交互性、更高的安全性,還要能承受更高的訪問量,這就需要網路服務具有更高性能、更大可用性、良好可擴展性和卓越的性價比。於是,集群虛擬伺服器技術和負載均衡機制應運而生。

集群虛擬伺服器可以將一些真實伺服器集中在一起,組成一個可擴展、高可用性和高可靠性的統一體。負載均衡建立在現有網路結構之上,提供了一種廉價、有效和透明的方法建立伺服器集群系統,擴展網路設備和伺服器的帶寬,增加吞吐量,加強網路數據處理能力。提高網路的靈活性和可用性。使用負載均衡機制.大量的並發訪問或數據流量就可以分配到多台節點設備上分別處理。系統處理能力得到大幅度提高,大大減少用戶等待應答的時間。

實際應用中,虛擬伺服器包含的真實伺服器越多,整體伺服器的性能指標(如應答延遲、吞吐率等)越高,但價格也越高。在集群中通道或其他部分也可能會進入飽和狀態。因此,有必要根據實際應用設計虛擬伺服器的模擬模型,依據實際系統的測量數據確定隨機變數的概率分布類型和參數,通過分位點一分位點圖即Q-Q圖(Quaantile-Quantile Plot)和累積分布函數(Cumulative Distribution Functions)等方法校驗應答或傳播延遲等性能指標的概率分布,通過模擬軟體和工具(如Automod)事先分析伺服器的運行狀態和性能特點,使得集群系統的整體性能穩定,提高虛擬伺服器設計的客觀性和設計的可靠性,降低伺服器建設的投資風險。

1 集群虛擬伺服器的體系結構

一般而言,首先需要在集群虛擬伺服器上建立互聯網協議偽裝(Internet Protocol Masquerading)機制,即IP偽裝,接下來創立IP埠轉發機制,然後給出在真實伺服器上的相關設置。圖1為集群虛擬伺服器的通用體系結構。集群虛擬伺服器通常包括:真實伺服器(RealServers)和負載均衡器(Load Balmlcer)。

由於虛擬伺服器的網路地址轉換方式是基於IP偽裝的,因此對後台真實伺服器的操作系統沒有特別要求,可以是windows操作系統,也可以是Lmux或其他操作系統。

負載均衡器是伺服器集群系統的惟一入口點。當客戶請求到達時,均衡器會根據真實伺服器負載情況和設定的調度演算法從真實伺服器中選出一個伺服器,再將該請求轉發到選出的伺服器,並記錄該調度。當這個請求的其他報文到達後,該報文也會被轉發到前面已經選出的伺服器。因為所有的操作都在操作系統核心空間中完成,調度開銷很小,所以負載均衡器具有很高的吞吐率。整個伺服器集群的結構對客戶是透明的,客戶看到的是單一的虛擬伺服器。

負載均衡集群的實現方案有多種,其中一種是Linux虛擬伺服器LVS(Linux Virtual Server)方案。LVS實現負載均衡的技術有三種:網路地址轉換(Network Address Translation)、直接路由(Direct Routing)和IP隧道(IP Yunneling)。

網路地址轉換按照IETF標准,允許一個整體機構以一個公用IP地址出現在Inlemet上。通過網路地址轉換,負載均衡器重寫請求報文的目標地址,根據預設的調度演算法,將請求分派給後端的真實伺服器;真實伺服器的應答報文通過均衡器時,報文的源地址被重寫,把內部私有網路地址翻譯成合法網路IP地址,再返回給客戶,完成整個負載調度過程。

直接路由的應答連接調度和管理與網路地址轉換的調度和管理相同,但它的報文是直接轉發給真實伺服器。在直接路由應答中,均衡器不修改、也不封裝IP報文.而是將數據幀的媒體接入控制MAC(Medium Aceess Control)地址改為選出伺服器的MAC地址,再將修改後的數據幀在區域網上發送。因為數據幀的MAC地址是選出的伺服器,所以伺服器肯定可以收到該數據幀,從中獲得該IP報文。當伺服器發現報文的目標地址在本地的網路設備時,伺服器處理該報文,然後根據路由表應答報文,直接返回給客戶。

IP隧道是將一個IP報文封裝在另一個IP報文中的技術。該技術可以使目標為某個口地址的數據報文被封裝和轉發到另一個IP地址。用戶利用IP隧道技術將請求報文封裝轉發給後端伺服器,應答報文能從後端伺服器直接返回給客戶。這樣做,負載均衡器只負責調度請求,而應答直接返回給客戶,不需要再處理應答包,將極大地提高整個集群系統的吞吐量並有效降低負載均衡器的負載。IP隧道技術要求所有的伺服器必須支持IP Yunnehng或lP.封裝(Encapsulation)協議。

2 集群虛擬伺服器報文延遲的確定

通過一個裝有5台真實伺服器並使用網路地址轉換技術實現Linux虛擬伺服器的實際系統,可以得到有關請求和應答報文的時戳(Time Stamp)文件n根據這些文件.能夠計算出集群虛擬伺服器的模擬和建模所需數據。

為了確定隨機變數分布類型和參數,應該統計下列延遲:(1)從客戶到負載均衡器的傳播延遲(Transport Delay);(2)負載均衡器的應答延遲(Response Delay);(3)從負載均衡器到真實伺服器的傳播延遲;(4)真實伺服器的應答延遲;(5)從真實伺服器到負載均衡器的傳播延遲;f61負載均衡器對真實伺服器的應答延遲;(7)從負載均衡器到客戶的傳播延遲。

在實際系統產生的時戳文件中,問接地描述了上述各延遲時間。文件包含的內容如下:

當一個服務請求到達集群虛擬伺服器系統時,即產生帶有惟一序列號的同步請求報文(Synchronized Request Package),將該報文轉發到某一真實伺服器,同時建立該伺服器與客戶端的連接,每個這樣的連接都帶有惟一的埠號;該伺服器處理通過該連接的確認請求報文(Acknowledgement Request Package),直到伺服器收到結束請求報文(Finished Request Package)。對每一種類型的請求報文,系統都給予一個相應的應答報文。因此,在不同的報文時戳文件中,如果兩條記錄具有相同的埠號、報文類型和序列號,則它們是同一個請求或應答報文,對相關的時戳相減即可得到集群虛擬伺服器系統的模擬和建模所需的延遲數據。通過所編寫的C++程序即可計算這些延遲。

3 系統模擬模型

上述的集群虛擬伺服器實際系統的模擬模型如圖2所示,在負載均衡器、各通道、5台真實伺服器中通過或處理的均為請求或應答報文。

4 隨機變數模型的確定

對具有隨機變數的集群虛擬伺服器進行模擬,必須確定其隨機變數的概率分布,以便在模擬模型中對這些分布進行取樣,得到所需的隨機變數。

4.1 實際虛擬伺服器的延遲數據概況

在實際虛擬伺服器的負載均衡器、各通道和5台真實伺服器中,對請求和應答報文都有一定的延遲。部分報文延遲的統計數據如表1所示。

由表l中的數據可見,報文延遲的中位數與均值差異較大,所以其概率分布不對稱;變異系數不等於l,導致概率分布不會是指數分布,而可能是γ分布或其他分布。

4.2 隨機變數的概率分布

圖3為第一台真實伺服器到負載均衡器之間的通道報文傳播延遲直方圖,其中t為報文延遲時間,h(t)為報文延遲區間數。由圖3可知,通道內的報文傳播延遲數據近似服從γ分布或對數正態分布。

描述γ分布需要兩個參數:形狀(Shape)參數α和比例(Scahj)參數口,這兩個參數與均值M、方差V之間的關系是非線性的:

描述對數正態分布也需要形狀參數σ和比例參數μ,這兩個參數與均值M、方差V之問的關系也是非線性的:

式(1)~(4)都可以通過最大似然估計MLE(Maximum Likelihood Estimator)方法或最速下降法(Steepest Descent Method)求出。表2給出了甩這兩種方法求出的從第一台真實伺服器到負載均衡器之間通道內的報文延遲概率分布參數。

使用累積分布函數和Q-Q圖可以校驗並進一步確定上述通道內報文傳播延遲的概率分布。取用表2中的參數,可以得到γ分布的累積分布函數,如圖4所示,其中t為報文延遲時間,F(t)為報文延遲的累積分布函數。為作比較,實驗分布也畫在該圖中。γ分布和對數正態分布的Q-Q圖如圖5所示。

由圖4和圖5可以看出,γ分布較好地擬合了該通道內的報文傳播延遲數據分布。其他通道報文延遲直方圖也有類似形狀。經計算和分析,這些通道的報文傳播延遲概率分布也近似服從γ分布。

根據表1中的數據以及相關的直方圖都難以確定在負載均衡器和真實伺服器中報文延遲的理論分布。因此,採用實驗分布作為其模型。

5 模型模擬

在建立了圖1所示的集群虛擬伺服器的系統模擬模型並確定了其隨機變數的分布特性後,可以採用由美國布魯克斯自動化公司(Brooks Automation)開發的模擬軟體Automod輸入該模型,並通過在Automod環境中編程進行集群虛擬伺服器的模擬和分析。

在Automod的模擬過程中,可以直接利用軟體提供的資源(Resource)作為各種報文數據處理的單元;系統各部分的報文排隊活動可以直接通過排隊(Queue)實現;建立一個負載產生器,等效為在Inlemtet上使用虛擬伺服器的客戶。

通過採用Automod的屬性變數(Attribute Variable)可以解決負載均衡器的雙方向報文處理功能的問題。負載均衡器使用輪轉調度演算法(Round Robin Scheling),即假設所有真實伺服器的處理性能均相同,依次將請求調度到不同的伺服器。

驗證模擬模型可以分別在實際虛擬伺服器系統和Automod的模擬模型中從以下兩方面進行對比:(1)在負載均衡器、各個真實伺服器和通道中排隊的應答或傳播報文數量;(2)真實伺服器及負載均衡器的cPU利用率。例如,當使用實際的應答或傳播報文延遲數據時,在Automod的模擬模型中,如果設置一個較低的資源量,則在模擬過程中就會發現大部分的負載都被堵在真實伺服器的排隊中,即真實伺服器處理報文的能力過低,無法與實際系統的狀況相比;如果設置一個較高的資源量,則意味著伺服器的並行處理能力增加,真實伺服器的利用率提高,負載就很少或不會滯留在真實伺服器的排隊中。因此,在Automod中可以根據實際情況調整模擬模型的資源量大小。

如果在Automod中增加負載產生器的負載產生率,就等效為用戶訪問量增加,通過觀察排隊中的負載滯留比例,就可以發現系統的最大處理報文的能力以及系統各部分應答報文可能出現瓶頸之處。例如,將負載產生率增加一倍,雖然系統仍然可以處理所有的報文,但各台真實伺服器的平均利用率將達80%左右。顯然,這時系統應答報文的「瓶頸」為真實伺服器,有必要在系統中增添一台新的真實伺服器。

通過一個包括5台真實伺服器的實際虛擬伺服器系統。收集並計算了模擬和建模的樣板數據。依據系統報文延遲的中位數、均值、變異系數和直方圖等,確定了系統隨機變數的概率分布;採用最大似然估計方法和最速下降法,得到了通道概率分布的具體參數;根據Q-Q圖和累積分布函數進一步校驗並最終確定通道的概率分布形式。使用Automod軟體進行了模擬建模和編程,藉助模擬結果可以發現虛擬伺服器的最大處理能力和可能的「瓶頸」之處。通過及時定位系統「瓶頸」,可以有的放矢地進一步研究和改進系統,有效提高系統性能。所採用的模擬方法也可以用於其他領域的模擬建模或分析中。

在模擬模型中,負載均衡方式和調度演算法還需要進一步增加,以便於比較不同的虛擬伺服器系統。樣本數據也需要進一步擴充,以避免報文延遲的自相關性。

B. TCP伺服器和客戶機編程

伺服器(TCP/IP)編程實例
現在大多數語言都支持客戶-伺服器模式(C/S)編程,其中VB給我們提供了很好的客戶-伺服器編程方式。下面我們用VB來實現TCP/IP網路編程。
TCP/IP協議是Internet最重要的協議。VB提供了WinSock控制項,用於在TCP/IP的基礎上進行網路通信。當兩個應用程序使用Socket進行網路通信時,其中一個必須創建Socket伺服器偵聽,而另一個必須創建Socket客戶去連接伺服器。這樣兩個程序就可以進行通信了。
①創建伺服器
首先創建一個服務埠號。並開始偵聽是否有客戶請求連接。
建立一窗體,並向其增加一個Winsock控制項(可在工程菜單中的部件項來添加此控制項)
添加兩文本框Text1,Text2,和一按鈕Command1
Private Sub Form_Load()
SockServer.LocalPort = 2000 ′伺服器埠號,最好大於1000
SockServer.Listen ′開始偵聽
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockServer.Close
End Sub
Private Sub SockServer_Close()
SockServer.Close
End Sub
Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
SockServer.Close
SockServer.Accept requestID ′表示客戶請求連接的ID號
End Sub
′當客戶向伺服器發送數據到達後,產生DataArrival事件,在事件中接收數據,GetData方法接收數據。
Private Sub SockServer_Data
Arrival(ByVal bytesTotal As Long)
Dim s As String
SockServer.GetData s
Text1.Text = s
End Sub
當需要向客戶發送數據時,只需調用SendData方法。
Private Sub Command1_Click()
SockServer .SendData Text2.Text
End Sub
②創建客戶
要創建客戶連接伺服器,首先設置伺服器主機名,如IP地址、域名或計算機名,然後設置伺服器埠,最後連接伺服器。
建立一窗體,並向其增加一個Winsock控制項(可在工程菜單中的部件項來添加此控制項),取名為:SockC1。添加兩文本框Text1,Text2,和一按鈕Command1
Private Sub Form_Load()
SockCl.RemoteHost =′127.0.0.1″
′表示伺服器主機名
SockCl.RemotePort = 2000
′表示伺服器埠名
SockCl.Connect
′連接到伺服器
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockCl.Close
End Sub
Private Sub SockCl_Close()
SockCl.Close
End Sub
Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)
Dim s As String
SockCl.GetData s ′接收數據到文本框中
Text1.Text = s
End Sub
Private Sub Command1_Click()
SockCl.SendData Text2.Text ′向伺服器發送數據
End Sub
③進行通信
把這兩個窗體分別編譯成兩個EXE文件,伺服器Server.exe和客戶Client.exe程序,並把它們分別安裝在伺服器端和客戶端,這樣就可以實現兩者通信了。
-

C. 怎樣學習編程開發,用C#實現基於TCP協議的網路通訊

首先學習C語言和VB,這是兩種不同風格的基礎知識。然後可以根據自身的興趣和發展方向來選擇各種編程語言。如C++,C#,JAVA等等。當你學習的時候你自然會發現演算法和數據結構的重要性,這是必須要努力學習的方面與此同時必須要學習一下資料庫的相關知識。

學習的時候,我認為實戰很重要,自學如何實戰?那就是做題,多做題才能多發現問題,多發現自己的不足。

以下是一點參考:

方案一 Basic語言 & Visual Basic

優點
(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。

缺點
(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。

綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。

Basic/Visual Basic簡介
方案二 Pascal語言 & Delphi

優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。

缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。

綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。

Pascal語言簡介
Delphi簡介
方案三 C語言 & Visual C++

優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。

缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業溝靡話愕謀喑貪 謎哐 捌鵠椿嵊脅恍〉睦 選?

綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。

C語言簡介
方案四 C++語言 & C++ Builder

優點
(1)C++語言的優點全部得以繼承。
(2)完全的可是化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。

缺點
由於推出的時間太短,關於它的各種資料還不太多。

綜述:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。

C語言簡介
方案五 SQL語言 & Power Builder

對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。

、《計算機組成原理》(熟悉)

2、《數據結構》(掌握)

3、《操作系統》(了解->熟悉)

4、《The C language》(掌握)

5、《編譯原理》(了解原理)

6、《匯編語言》(了解)

7、《計算機網路》(了解)

8、《軟體工程》(了解)

9、《關系資料庫》(熟悉)

10、《The C++Languege 》(掌握)

11、《面向對象設計》(掌握;結合C++學習)
1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)

2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)

3、《Inside The C++ Object Model》 (lippmans)

4、《Effective C++》 (同上)

5、《More Effective C++》 (同上)

6、《Exceptional c++》

7、《C++面向對象高效編程》

8、《設計模式》

9、《Thinking In C++》

10、《The Standard C++ Bible》(一般推薦)

11、《The Art of Computer Programming 》

12、《Programming Windows》 (Charles Petzold)

13、《VC++5.0技術內幕》

14、《MFC 深入淺出》

15、《軟體需求》

16、《Advanced Windows》

17、《C++ primer》

18、《win32程序員參考手冊》

19、《用TCP/IP進行網際互連》

20、《COM 本質論》

D. 學習C語言需要哪些軟體

相對於其他編程語言,C語言還是比較難的。初學者需要注意一下幾點:

一是學習順序

先從熟悉簡單的C語言語法開始入門,然後再循序漸進,學習C++語法,WIN32、MFC、QT、網路編程,資料庫、數據結構、演算法、COM、STL等。構建一個完整的C語言知識體系。這需要一個比較漫長的學習積累的過程。語法入門部分大概2-3個月,其他部分需要學習和工作中慢慢理解和消化了。

c11.jpg

二是學習方法

人的知識80%是通過眼睛獲取的,但是學習編程有所不同,除了看書、看視頻之外,關鍵是要勤動手,勤動腦。通過做大量的練習、項目實戰不斷積累代碼量。只有代碼量足夠多了,項目做的多了,才能算是真正學會了。項目能否完成,就是衡量是否學會的唯一標准。後期就是代碼的質量和優化問題了,這個只能在項目工作中慢慢積累經驗了。

c12.jpg

最後強調一點

很多人學不會編程是因為掉坑裡了。就是教程或者書上的知識點之間跨越太大,作為一個初學者很難自己摸索出來,前面的知識點沒有掌握,接著學習後面的知識,肯定是學不會了。目前絕大多數編程書籍和教程或多或少都有這樣的弊端。自學能力比較強的人可以通過各種方法,參考各種網上的資料自己解決。但是大多數自學能力不是很強的人,只能依賴老師、同學、同事或者朋友幫忙指導,或者報名培訓機構,老師指導完成了。

學習編程通常需要一些好的學習資料,包括紙質的書籍,視頻教程,課件,項目練習,代碼。零基礎入門的書籍推薦《明解C語言》、《C Primer Plus》,還有一本非常特別的匯編和C語言正向逆向結合的書編程達人內部教材《匯編、C語言基礎教程》也非常不錯,講解匯編和C語言的本質非常透徹,非常細致。視頻資料也是特別多了,各種視頻網站、論壇、自媒體都有,比如網易課堂、騰訊課堂、慕客網這些。還有一些論壇,比如CSDN、編程中國等。最重要的一點就是答疑服務,推薦愛達人的網站也很不錯,從零基礎入門到應用課程,配套的視頻、課件、代碼、項目、答疑服務都有,還可以兼職接單,學以致用。

閱讀全文

與tcp語言編譯器相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163