Visual C++網路程式設計經典案例詳解 第4章 FTP瀏覽器 建立客戶端 建立工程
1 vc6.0 檔案 新建 工程選項卡 選擇MFC AppWizard[exe]項
2 工程名稱文字輸入專案名稱 FTP 儲存路徑 點選確定
3 選擇 基本對話方塊 單選按鈕 下一步 需要WinSock, 要選擇Windows Sockets複選框
4 下一步 完成
基於對話方塊模式 需要使用者拖動控制元件到對話方塊面板
對話方塊中 使用者需要輸入伺服器地址 使用者名稱和密碼 單擊 連線伺服器 按鈕 連線伺服器
客戶端與伺服器連線狀態顯示在編輯框
相關推薦
Visual C++網路程式設計經典案例詳解 第4章 FTP瀏覽器 登入FTP伺服器 連線FTP伺服器
在對FTP檔案進行相關處理之前 必須在成功連線 登入伺服器以後 才可以執行相關的操作 因為FTP連線是基於Windows套接字程式設計的 所以FTP的連線過程和Socket連線一樣 也就是客戶端建立連線套接字以後 呼叫函式Connect()向伺服器連線請求 使用者需要特別
Visual C++網路程式設計經典案例詳解 第4章 FTP瀏覽器 登入FTP伺服器 FTP檔案處理 CSocketFile類的使用 獲取FTP伺服器檔案資訊 獲取檔案列表
使用者程式設計時 需要獲取FTP伺服器檔案的列表 以便檢視檔案的相關資訊 一般情況下 FTP檔案列表資訊是通過客戶端和伺服器之間的資料通道獲取 程式設計中 使用者可以向伺服器傳送LIST命令 伺服器接收到該命令以後會向客戶端返回FTP目錄下的檔案列表資訊 需要使用者注意 在
Visual C++網路程式設計經典案例詳解 第4章 FTP瀏覽器 建立客戶端 建立工程
1 vc6.0 檔案 新建 工程選項卡 選擇MFC AppWizard[exe]項 2 工程名稱文字輸入專案名稱 FTP 儲存路徑 點選確定 3 選擇 基本對話方塊 單選按鈕 下一步 需要WinSock, 要選擇Windows Sockets複選框 4 下一步
Visual C++網路程式設計經典案例詳解 第4章 FTP瀏覽器 建立客戶端 定義CFtp類 Send函式
客戶端連線FTP伺服器 成功則返回true 否則返回false 如果連線成功 則需要向伺服器傳送命令以初始化伺服器和獲取伺服器檔案列表 函式Send()定義如下 void CFtp::Send(CString charstring) //Send()函式傳送資訊
Visual C++網路程式設計經典案例詳解 第4章 FTP瀏覽器 建立客戶端 使用CFtp類程式設計 初始化檔案查詢
使用者在客戶端啟動時 可以使用函式進行檔案查詢 BOOL CFTPDlg::OnInitDialog() { ... //省略部分程式碼 int i=0; LVITEM item={0}; //初始化列表結構 item.mask=LVIF_TEXT;
Visual C++網路程式設計經典案例詳解 第4章 FTP瀏覽器 建立客戶端 使用CFtp類程式設計 本地檔案列表右鍵響應函式
在本地檔案列表中 使用者需要響應右鍵訊息 在右鍵訊息響應函式中獲取檔名稱 呼叫 CFtp 類的函式 UpdataFile() 上傳檔案 void CFTPDlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult) {
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
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 HTTP響應 響應狀態資訊 響應碼一些具體含義
如果使用者需要了解響碼具體情況, 請參考RFC2068 其中給出了具體響應碼的含義。 例如,響應碼的一些具體含義。 響應碼 意義 201 伺服器建立了一個新資源
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 HTTP響應 響應狀態資訊 常見的響應碼類別
響應的狀態資訊包含在響應訊息的第一行 由HTTP版本代號、響應碼和響應狀態描述文字組成 其中響應碼錶示客戶端此次請求是否成功或其他原因出錯。 使用者可以從響應碼中知道具體出錯的原因。 常見的一些響應碼類別。 部分常見的響應碼類別 響應碼 分類 意義 200~299 成功 表示請求已經被伺
Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 HTTP響應
HTTP響應是指伺服器對客戶端的請求作出的反應 伺服器的響應也是通過訊息實現的。 與請求訊息一樣, 響應訊息也是分訊息頭和訊息體兩部分組成 但是兩者之間需要使用一個空白行分開。 在訊息頭中包含的響應的當前狀態和伺服器的一些資訊, 訊息體中則包含的響應的實體資料。 HTTP/1.1 200