網路程式設計經典好書推薦
共享一本經典好書,linux和windows全面涉及,由淺及深,從網路程式設計基礎的套接字開始講起,再到tcp和upd的區別,有邊界和無邊界,流的特點和資料包的特點,再到io模型,select到epoll,windows下的非同步程式設計,重疊io,IOCP(io完成埠),epoll和IOCP都非常高效,而且都是作業系統相關。最後講解http協議以及一個簡單的web伺服器的實現。
0分下載:http://download.csdn.net/detail/luomoshusheng/9116107
相關推薦
網路程式設計經典好書推薦
共享一本經典好書,linux和windows全面涉及,由淺及深,從網路程式設計基礎的套接字開始講起,再到tcp和upd的區別,有邊界和無邊界,流的特點和資料包的特點,再到io模型,select到epoll,windows下的非同步程式設計,重疊io,IOCP(i
TCPIP之四書五經---學習Linux網路程式設計經典推薦
作者:孟巖 來源:不詳 TCP/IP協議是當前廣域網和區域網通用的網路協議,因此,基於TCP/IP的程式設計就格外重要。從應用上來說,現在直接利用C層次Socket API進行TCP/IP程式設計的人確實越來越少了,各種現成的框架(如ACE、Java、.NET FC
Visual C++網路程式設計經典案例詳解 第2章 Winsock網路程式開發流程 基於UDP的Sockets程式設計 UDP伺服器
vc建立控制檯程式視窗的應用程式 命名為 UDP伺服器UDPSever.cpp #include<winsock2.h> #include<stdio.h> #include<windows.h> #pragma comment(lib,
Visual C++網路程式設計經典案例詳解 第2章 Winsock網路程式開發流程 基於UDP的Sockets程式設計 UDP客戶端
在VC中建立UDP客戶端程式 控制檯 #include<winsock2.h> #include<stdio.h> #include<windows.h> #pragma comment(lib,"WS2_32.lib") int mai
Visual C++網路程式設計經典案例詳解 第2章 Winsock網路程式開發流程 TCP伺服器程式 介面初始化
與TCP客戶端一樣 伺服器程式啟動時需要介面初始化 不管伺服器在初始化時 還應該同時完成套接字的建立以及地址繫結等處理工作 class CTCPDlg : public CDialog { // Construction public: CTCPDlg(CWnd*
Visual C++網路程式設計經典案例詳解 第3章 多執行緒與非同步套接字程式設計 實現執行緒同步 互斥物件 使用API函式操作互斥物件
互斥物件和臨界區物件和事件物件作用一樣 用於實現執行緒同步 互斥物件可以線上程中使用 CreateMutex()建立並返回互斥物件 原型如下 HANDLE CreateMutex( LPSECURITY_ATTIRIBUTES lpMutexAttributes,
Visual C++網路程式設計經典案例詳解 第3章 多執行緒與非同步套接字程式設計 實現執行緒同步 互斥物件 程式的唯一執行
互斥物件可在程序中使用 使用者在程序建立互斥物件實現程式例項唯一執行 建立控制檯工程 #include<windows.h> //包含標頭檔案 #include<stdio.h> in
Visual C++網路程式設計經典案例詳解 第3章 多執行緒與非同步套接字程式設計 程序間通訊 命名管道 命名管道例項
vc新增控制檯工程 名字命名管道例項 新增原始檔 名字 伺服器 #include<windows.h> //包含標頭檔案 #include<stdio.h> int main() {
Visual C++網路程式設計經典案例詳解 第4章 FTP瀏覽器 登入FTP伺服器 連線FTP伺服器
在對FTP檔案進行相關處理之前 必須在成功連線 登入伺服器以後 才可以執行相關的操作 因為FTP連線是基於Windows套接字程式設計的 所以FTP的連線過程和Socket連線一樣 也就是客戶端建立連線套接字以後 呼叫函式Connect()向伺服器連線請求 使用者需要特別
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 製作個性化介面 工具欄程式設計 新增工具欄按鈕
製作網頁瀏覽器時 使用者還需要新增一些功能。 例如 使用者重新整理上一步下一步 和瀏覽記錄等。 這些操作在VC中實現非常簡單。 首先在資源管理器中,展開Toolbar項 新增四個工具欄按鈕 按鈕的ID分別為 ID_VIEWRECORD、ID_PRE、ID_NEXT、ID_REFR
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 製作個性化介面 工具欄程式設計 OnCreate()函式
在這裡 使用者需要用到MFC中CReBar類 該類相當於一個容器 可以將多個控制元件組合在一起 程式碼如下 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { ...//省略部分程式碼 if(dlg.m_hWnd==NU
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 製作個性化介面 工具欄程式設計 新增對話方塊到工具欄
將ID為ID_DIALOG 的對話方塊新增到工具欄中, 使用者需要將類物件設定為CMainFrame類的成員變數 首先,在CMainFrame類的標頭檔案"MainFrm.h"開頭處 新增CTooldlg類的標頭檔案“Tooldlg.h” ... //省略部分程式碼 #includ
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 製作個性化介面 工具欄程式設計 介面設計
在工程中新增一個對話方塊作為位址列等控制元件的面板 ID為 ID_DILOG 將組合框與連線按鈕放置到對話方塊面板上 介面中的各個控制元件以及屬性如表所示 控制元件ID及其屬性 控制元件ID IDC_STATIC IDC_COMBO1 IDC_BUTTON1 屬性 地址 地址輸入框
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 製作個性化介面 工具欄程式設計
在VC中製作與IE功能相似的網頁瀏覽器 可以使用MFC中的CHtmlView類 也可以使用ActiveX控制元件類CWebBrowser2實現網頁瀏覽器的開發 對於網路瀏覽器而言 工具欄是很重要的一部分 在工程中使用工具欄可以方便使用者的操作。 使用者通過工具欄上的位址列輸入網頁地址
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 HTTP響應 實體資料 類獲取響應訊息的響應碼
結構體的用法很簡單。 例如,利用該類獲取響應訊息的響應碼 程式碼如下 ... message msg; //結構體物件 CString str; //存放響應碼 msg.messagehead=&recvdata; //recvdata 為接收到的響應訊息
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 HTTP響應 實體資料 自定義一個簡單的訊息體結構
總之,伺服器返回的響應訊息類似於C++語言中的結構體 訊息頭和訊息體就是這個結構體裡面的元素。 使用者在使用HTTP程式設計時, 可以根據需要自定義一個結構體儲存該訊息資料。 例如,自定義一個簡單的訊息結構體 typedef struct { char *messagehead; /
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 HTTP響應 實體資料 伺服器的訊息響應格式
在伺服器的響應訊息中包括了訊息頭和訊息體兩部分。 其中訊息體中包含的實體資料。 並且在訊息頭和實體資料之間使用一個空白行進行分隔。 例如 客戶端向伺服器請求一個頁面GET.html 伺服器的響應訊息格式如下 HTTP/1.1 200 OK//訊息頭。 Date: Mon,21 Nov
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 HTTP響應 實體標題欄位資訊 Content-Length標題
該標題必須與Content-type標題一起使用 用於表示實體資料的大小(以位元組為單位) 其用法如下 HTTP/1.1 200 OK Date: Mon,21 Nov 2008 18:33:22 GMT Sever: Microsoft-IIS/6.0 Accept-Ranges: b
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 HTTP響應 實體標題欄位資訊 Content-type標題
在伺服器的響應訊息中含有實體資料 Content-type標題可以用於指示實體資料的個數 以及所使用的字符集 Content-type:text/html; charset=ASCII 實體資料是文字格式的HTML檔案 所使用的字符集為XLM 如果伺服器返回一幅 XLM 或其他格式
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 HTTP響應 響應狀態資訊 響應標題欄位資訊 Location標題
在響應標題欄位資訊中包含了伺服器返回除響應行以外的其他資訊 當伺服器上的資源被儲存到其他地址以後 伺服器會將新地址到客戶端 這時在響應標題欄位中會新增Location標題 該標題表示資源的實際位置 並且使絕對的URL地址 HTTP/1.1 302 OK Date: Mon,21 No