底層網路編程
① 什麼是網路編程其發展的發現怎樣
最底層的應該是Socket編程,直接使用TCP/IP的API,但過於復雜。人們開始在Socket之上搭建更高級的API ,有的也稱協議(protocal),或框架(framework)等。隨時間先後,有RPC(remote procere call遠程過程調用),CORBA(Common Object Request Broker Architecture), Microsoft DCOM(Distributed Component Object Model), Java RMI(Remote Method Invoke), EJB(Enterprise Java Bean), Microsoft .Net, SOAP(Simple Object Access Protocal, Web服務的通信協議)。這些是編程中常用的。還有一些Internet上常見的專用協議如FTP, SMTP, P2P等等。至於發展方向,目前在企業內部,EJB和.Net應用廣泛。SOAP則更則重於Internet上的應用。隨著眾多手持設備的加入,SOAP的使用會越來越普遍。
如想了解更多,請參考Network Computing。
② MFC進行網路編程,底層的百兆網與千兆網在網路編程上有哪些區別
註:我自己沒有親自測試過,不敢斷言一定怎麼怎麼樣,所以以下只是我個人的想法,僅供參考。
windows設計時就是分層實現的,目的就是為了避免你所說的這種問題,所以說,上層應用程序和底層的改動沒有關系。只要保持介面的一致即可,當然,你這只是傳輸速率的改變,自然介面沒有變化了。總結,網路速率的改變,不會影響上層應用。
③ Windows和Linux下的網路編程方法的異同
Linux下的網路編程與Windows下採用底層的API類似,但是也有區別:區別一版:Windows下需加上WSAStartup()函數區別二:關閉socket:Linux為close(),Windows為closesocket()windows下採用上層的API,一般有CSocket和CAsynSocket這兩種類型的類權這種情況以下socket函數一般的首字母大寫。而底層的API不管是windows下的還是linux下的socket函數首字母都是小寫的。
④ 怎麼系統的自學網路編程(底層協議)
用來實現網路編程是很容易的,可以作為網路編程的入門。使用C++和winsock相對復雜一些。
總之看實際需要了。
你好初學網路編程者可以從以下幾個步驟開展:
1)下載一個可以互動的學習工具,通過這個與這個工具互動,我們可以及時的學到每個api的結果如果。
對於有c/c++或java基礎的朋友通過一兩個禮拜的時間就可以上手了,另外個人建議初學者可以學習dive into python。
2)掌握網路編程中會用到的幾個基本概念和內涵,比如IP地址,port號,socket等
3)記住和消化網路編程C/S模型,把server和client端編程的常用模式理解和消化
4)花幾天時間學習socket api集,api集可以分為下面幾大類:創建 socket bind listen accept收發 read/recv/recvfrom write/send/sendto關閉 close shutdown參數 getsockopt/setsockopt地址 gethostbyaddr getaddrbyhost,...在學習這些api時候,可以先關注在函數功能,參數意義上
5)結合python互動平台,實踐socket api的用法,比如socket函數怎麼使用,bind怎麼使用等等。在互動過程中,我們可以變換參數,看看調用結果如何。比如,創建一個tcp socket的語法如下:socket(AF_INET,SOCK_STREAM)創建一個udp socket的語法如下:socket(AF_INET,SOCK_DGRAM)
6)學習socket server端編程實現簡單規約比如echo,time等,然後通過cmd中的telnet來測試。
7)學習I/O模型,比如阻塞、非阻塞和反應式(select,poll,WaitForMultipleObject)等
8)學習Richard Stevens的《Unix網路編程》,深入學習其中的api原理以及服務端設計原理,並通過代碼編寫。
9)下載高性能網路編程框架twisted,筆者強烈推薦,它將使你的網路編程效率提高10倍以上。
10)學習設計模式、操作系統知識比如線程、進程、同步等。
⑤ 求網路編程。。
底層知識: (推薦指數:五星)
我有中文版PDF的《計算機網路》第四版,網路原理經典書籍
網路編程:
《Windows網路編程技術》(推薦指數:五星)
中文版高清PDF格式 486頁 ,極力推薦
含目錄書簽,是一本內容豐富,講解詳細的Windows網編
目錄:
第一部分 傳統網路API
第1章 NetBIOS 1
第2章 重定向器 45
第3章 郵槽 54
第4章 命名管道 66
第二部分 Winsock API
第5章 網路原理和協議 89
第6章 地址家族和名字解析 102
第7章 Winsock基礎 132
第8章 Winsock I/O方法 172
第9章 套接字選項和I/O控制命令 207
第10章 名字注冊和解析 243
第11章 多播 261
第12章 常規服務質量 292
第13章 原始套接字 340
第14章 Winsock 2服務提供者介面 363
第15章 微軟Visual Basic Winsock控制項 397
第三部分 遠程訪問服務
第16章 RAS客戶機 423
第四部分 附錄錄錄
附錄A NetBIOS命令索引 451
附錄B IP助手函數 464
附錄C Winsock錯誤代碼
另外還有一些網路方面的經典巨作,
《TCP/IP詳解》共三卷,均為高清中文PDF,
《C++網路編程 卷1》《C++網路編程,卷2》
樓主可以以後深入研究
請樓主給出郵箱,我將上述資料都發給你
⑥ 網路編程用什麼語言
目前通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。
⑦ java網路編程中,在server端,什麼支持底層的網路通信
Java的網路通信可以使用Socket 機制。
協議分成2種,tcp和udp。
tcp是面向連接的,可內靠的;容udp是面向無連接的,不可靠的。
網路搜索關鍵字:java socket 網路通信 tcp udp
⑧ 在網路編程中當套接字成功建立後底層協議是如何運行的
socket相當於緩存,網路數據進入socket或數據從socket中發送到網路中都是按照網路協議進行的。專比如:tcp協議中,用write函數屬把數據寫入socket,然後操作系統會根據tcp協議決定何時把這些數據發送到網路中,數據進入網路中按照路由選擇演算法到達目的主機,目的主機查看ip,port是否正確,如果正確就把數據存到對應的socket中,等待應用程序把數據取走
⑨ 懂一點C和VB怎麼系統的學習網路編程(底層協議的那些)
記住,沒有最差的開發工具,只有最差的程序員。
C可以操作底層,VB也可以,雖然速度不是很快;
學好可以對嵌入式和底層開發進行很大程度的開發,但是在windows系統中小程序上,VB有著得天獨厚的優勢,效率高,產期短,易於上手,對windows可控性高,所以說沒有什麼過不過時的軟體,程序道理都相通,只要你用心,C,C++,.net都可以學會。
學習本身就是苦悶的,沒有苦悶的過程哪來優異的學識?
堅持吧!扛過去就好了!
-----------------------
如何學好VB
序:不要老是想著誰「最有錢途」,這些都不是我們應當考慮的,我們要考慮的是怎樣才能真正的精通VB。如果成為了VB的專家,應當很容易賺到錢的。VB程序員為什麼工資低,不是VB不行,是因為大部份VB程序員不行,他們只懂得用控制項,而沒有什麼編程的思想。而VB的初學都只會用控制項和簡單的API就說精通VB了,顯然影響的整個VB在程序界的地位,這些人顯然不能稱為程序員的,只能相當於會使用VB了,就像會Word一樣。如果VB程序員都懂的數據結構,UML等,就完全是另外一回事了。有認為VB功能弱,請注意:仙劍95版就是用VB4做的,還有DirectX SDK7中有個一很好玩的3D游戲,聲音和動畫都非常好,也是用VB寫的。所以VB能做很多東西,只要你想去做。
(1)VB不只是資料庫和報表。不要以為VB就是資料庫和報表,這只是VB強大功能的一小部份。如果這此都搞不清,還是好好的看一下相關的書籍,比在這里問問題有用多了。我以前沒有學過資料庫,只是有些編程的思路,後來學資料庫就非常容易了。我做報表一般用RichTextBox或是From來做,一般都能做的很好,也不用去考慮什麼水晶報表了。
(2)不要迷信於API。API能做很多東西,但有些東西在VB裡面的函數中就有,API只是VB對WindowsSDK的封裝而已。如果想學好API,建議學習SDK。如果VB本身就能很好的支持這個功能,何必還要用API呢。
(3)不要什麼都想著控制項。如果做程序都想著第三方控制項的話,代價是很高的,不僅程序大,安全性也低了很多。其實VB本身帶的控制項已經完全夠用了。
(4)認認真真的把MSDN中關於VB的內容好好看一看,特別是函數和語句,很有用的。
(5)遇到問題不要直接來這里問,自己好好想一想,試著解決這個問題,這雖然在時間上慢了,可是在自身的提高上卻有很大的幫助。
(6)沒事的時候,多研究些語言上的東西,如數據結構和演算法,不要老是想著什麼花哨的東西。這對以後的提高非常有幫助。
如何學好VB程序設計
1,學習程序設計的基本要求
2,Vb的功能及特點
3,學習VB程序設計的方法
對學習者知識的要求:
首先,學習程序設計要具備一定的數學基礎.計算機與數學有很大的聯系,綜觀計算機歷史,計算機的數學模型(圖靈機,由Alan Turing提出)和體系結構(由John Von Neuman提出)等都是由數學家提出的,最早的計算機也是為數值計算而設計的.因此,要學習好計算機就要有一定的數學基礎.不過對於初學者來說,在數學基礎方面的要求並不是很高,從我個人的角度來看,有高中數學水平就差不多了.
如何學好VB程序設計
學習程序設計基本要求
對學習者知識的要求:
其次,學習程序設計要有一定的邏輯思維能力.邏輯思維需要長時間的鍛煉,如果你覺得自己在邏輯思維能力上有不足,也沒有關系,因為編寫程序本身也是對邏輯思維的鍛煉.初學程序設計應具備的邏輯基礎可以從高中數學中學到.
如何學好VB程序設計
學習程序設計基本要求
熟悉Visual Basic操作環境與設計工具,能設計應用程序界面.
掌握,理解面向對象程序設計基本概念
掌握VB語言的基礎知識,程序設計的方法,
能閱讀一般難的程序;
能應用編寫一些簡單程序;
具有用Visual Basic開發Windows環境下應用程序的能力和閱讀分析一般難度的VB程序的能力.
如何學好VB程序設計
VB程序設計的基本要求
Visual Basic 簡介
Visual Basic 是Microsoft 公司開發的Windows 應用程序開發工具,Visual ——"可視化的",是一種開發圖形戶界面(GUI)的方法.使得非計算機專業的人也可以開發出專業的Windows軟體.
Visual Basic繼承了BASIC語言簡單易學的優點,又增加了許多新的功能,它採用面向對象與事件驅動的程序設計思想,使編程變得更加方便,快捷.使用Visual Basic既可以開發個人或小組使用的小型工具,又可以開發多媒體軟體,資料庫應用程序,網路應用程序等大型軟體.是國內外最流行的程序設計語言之一.
2,VB的功能及特點
英文Visual的意思是"視覺的","可視的Baisc"這個名字可能抽象了點,但實際上它卻是最直觀的編程方法,之所以叫做"可視",你只要看到VB的界面就會明白,實際上你無需編程,就可以完成許多步驟.
在VB中引入了控制項的概念,在Windows中控制項的身影無處不在,如按鈕,文本框等,VB把這些控制項模式化,並且每個控制項都有若干屬性用來控制控制項的外觀,工作方法,能夠響應用戶操作(事件).
這樣你就可以象在畫板上一樣,隨意點幾下滑鼠,一個按鈕就完成了,這些在以前的編程語言下是要經過相當復雜的工作的.
何為可視
Visual Basic的特點
1. 具有面向對象的可視化設計工具
2. 事件驅動的編程機制
3. 結構化的程序設計語言
4. 提供了易學易用的應用程序集成開發環境
5.支持多種資料庫系統的訪問
6.高度可移植化的代碼
7.VB6.0在開發環境上,網路功能等的大大增強
Visual Basic的特點
可視化設計: Visual Basic為用戶提供大量的界面元素(在Visual Basic中稱為控制項對象),例如 "窗體","菜單","命令按鈕","工具按鈕","檢查框"等等,用戶只需要利用滑鼠,鍵盤把這些控制項對象拖動到適當的位置,設置它們的大小,形狀,屬性等,就可以設計出所需的應用程序界面.
Visual Basic的特點
事件驅動編程:Windows操作系統出現以來,圖形化的用戶界面和多任務多進程的應用程序要求程序設計不能是單一性的,在使用Visual Basic設計應用程序時,必須首先確定應用程序如何同用戶進行交互.(例如發生滑鼠單擊,鍵盤輸入等事件時,用戶必須編寫代碼控制這些事件的響應方法)這就是所謂的事件驅動編程.
程序設計方法概述
1.初期的程序設計
高運行效率,少佔用內存為目標
2.結構化程序設計
程序的可讀性,可維護性為目標
程序=演算法+數據結構+計算機語言+面向過程的程序設計方法
3.面向對象的程序設計(OOP)
降低程序的復雜性,提高軟體的開法效率和改善工作界面為目標
程序=對象+消息+面向對象的程序設計
面向對象的程序設計具有如下的優點:
1.符合人們習慣的思維方法,便於分解大型的復雜多變的問題.由於對象對應於現實世界中的實體,因而可以很自然地按照現實世界中處理實體的方法來處理對象,軟體開發者可以很方便地與問題提出者進行溝通和交流.
2.易於軟體的維護和功能的增減.對象的封裝性及對象之間的鬆散組合,都給軟體的修改和維護帶來了方便.
3.可重用性好.重復使用一個類(類是對象的定義,對象是類的實例化),可以比較方便地構造出軟體系統,加上繼承的方式,極大地提高了軟體開發的效率.
4.與可視化技術相結合,改善了工作界面.隨著基於圖形界面操作系統的流行,面向對象的程序設計方法也將深入人心.它與可視化技術相結合,使人機界面進入GUI時代.
(1)養成良好的學習習慣
VB程序設計的入門學習並不難,但卻是一個十分重要的過程,因為程序設計思想就在這時形成的,良好的程序設計習慣也在這個階段養成.
(2)學習程序設計要注重理解一些重要的概念.
VB程序設計本身並不復雜,翻開一本程序設計學習的書籍,看到的無非就是變數,函數,條件語句,循環語句等概念.但要真正能進行程序設計,需要深入理解這些概念.因此,在程序入門階段還是應該重視概念的學習.
3,學習VB程序設計的方法
(3)自己動手編寫程序
程序設計入門階段要經常自己動手編寫程序,親自動手進行程序設計是創造性思維應用的體現,是培養邏輯思維的好方法.因此一定要多動手編寫程序,而且要從小程序開發開始,逐漸提高開發程序的規模.
(4)閱讀,借簽別人設計的好程序
多看別人設計好的程序代碼,包括教材上的例題程序.在讀懂別人程序後,要想他為什麼這么設計 能不能將程序修改完成更多的功能 則可以學到別人優秀的東西,幫助自己提高自身水平.
3,學習VB程序設計的方法
(5) VB程序設計學習的重點
重點放在思路,演算法,編程構思和程序實現上.
語句只是表達工具,要求堂上積極思考,盡量當堂學懂,並做到靈活應用.
學會利用計算機編程手段分析問題和解決問題.
(6)養成良好的編程習慣
強調可讀性;變數要加註釋;
程序構思要有說明;
學會如何調試程序;
對運行結果要做正確與否的分析.
3,學習VB程序設計的方法
學好VB程序設計的具體要求:
(1)課前預習,認真聽課並作適當做筆記,課後要認真復習消化所學內容,完成作業.
(2)多寫程序,注重實踐
程序設計課是高強度的腦力勞動,不是聽會的,也不是看會的,而是練會的.
只有自己動手,編寫一些程序,才會有成就感,進而對課程產生興趣,學起來才比較從容.只有當你在編寫大量程序之後,才能獲得真知灼見,感到運用自如.
動手能力的培養是這門課和以往課程最大的不同之處.
3,學習VB程序設計的方法
(3)上機調試程序應注意的幾點:
上機前應認真把實驗題在用紙上做一做(包括窗體界面設計,事件代碼的編寫等)
每次上機後應總結,把沒有搞清楚的問題記錄下來,請教老師或同學.
平時應多抽課余時間多上機調試程序.注意系統的提示信息,遇到問題多問幾開為什麼.
3,學習VB程序設計的方法
(4)保持良好的學習心態
要有自信,自強,積極主動學習.
克服畏難情緒,樹立學好程序設計的信心.