计算机网络课程设计报告
計算機網絡課程設計
第一章、緒論
1.1?引言…………………………………………………..2
1.2?Socker編程機制………………………………….2
第二章、課程設計目的
?2.1?基本目的…………………………………………….3
2.2?學會自我學習.........................................4
第三章、課程設計內容與要求
?3.1?課程設計內容與要求……………………………..4
3.2??思路分析................................................4
第四章、實驗步驟
4.1 用 vs 2010 創建簡單的基本對話框 ……….......64.2添加相應的控件........................................11
4.3給控件添加代碼........................................13
4.4編譯測試..................................................14
第五章、重點分析
?5.1問題分析………………………………………………16
?第六章、總結
?......………………………………………………………….
緒論??
1.1?引言
隨著 Internet日益廣泛的應用,黑客攻擊行為也是有增無減。如何有效地抵御這種攻擊行為,一直是信息安全領域的焦點。
而其中,端口掃描技術吸引了越來越多人的關注,端口掃描是黑客搜集,目標主機信息的一種常用的方法。為了有效地對付網絡入侵行為,對端口掃描進行研究是非常有益和必要的。攻擊者在攻擊一個目標時,首先要獲取目標的一些基本信息,端口掃描就是其中最簡單最重要的方法之一,它可以掃描目標主機中開放的端口,從而確定目標主機中提供的服務,為下一步攻擊做準備。針對端口掃描技術,相應的端口掃描檢測技術顯得越發重要,作為網絡安全技術中的一個重要課題,端口掃描檢測技術意義重大。
本課程設計就是設計一個簡單的端口掃描程序,判斷主機的相應端口的開放情況,從而加強對端口的保護,達到抵御黑客攻擊的效果。
1.2?Socket編程機制
我們可以簡單的把Socket理解為一個可以連通網絡上不同計算機程序之間的管道,把一堆數據從管道的A端扔進去,則會從管道的B端(也許同時還可以從C、D、E、F……端冒出來)。管道的端口由兩個因素來唯一確認,即機器的IP地址和程序所使用的端口號。IP地址的含義所有人都知道,所謂端口號就是程序員指定的一個數字,許多著名的木馬程序成天在網絡上掃描不同的端口號就是為了獲取一個可以連通的端口從而進行破壞。??
比較著名的端口號有http的80端口和ftp的21端口。當然,建議大家自己寫程序不要使用太小的端口號,它們一般被系統占用了,也不要使用一些著名的端口,一般來說使用1000~5000之內的端口比較好。
Socket可以支持數據的發送和接收,它會定義一種稱為套接字的變量,發送數據時首先創建套接字,然后使用該套接字的sendto等方法對準某個IP/端口進行數據發送;接收端也首先創建套接字,然后將該套接字綁定到一個IP/端口上,所有發向此端口的數據會被該套接字的recv等函數讀出。如同讀出文件中的數據一樣。
課程設計目的
2.1 基本目的
通過本次的一個簡單的課程設計,了解并掌握簡單的socket編程和web程序的設計,學會VC++或者VS 2010在設計應用程序的使用方法,能獨立完成簡單的MFC的應用程序設計,了解控件的相應屬性的設置,了解相應MFC的庫函數的調用和重寫。
?
?
2.2 學會自我學習
在進行課程設計的同時,學會自我學習,自我解決問題,不能太依賴他人,學會獨立的完成任務。
課程設計內容與要求
3.1 課程設計題目與要求
設計一個基于主機端口掃描的應用程序,要求能掃描出主機相應端口是開啟(opend)還是關閉狀態(closed)。并且要有相應的密碼登錄過程,不允許隨意查詢。至少要求基于UDP和TCP兩種方式的掃描。可以多次進行掃描,重新掃描前需要清空以前的數據。
?
3.2?思路分析
?
第四章、實驗步驟
4.1 用VS創建簡單的基本對話框
1)新建,項目,新建一個MFC應用程序
2)如圖所示,給項目起一個名字如MFC
3)進入MFC應用程序向導
?
4)選擇基于對話框的類型,下一步
5)下一步
6)選擇Window套接字,下一步
7)點擊下一步
8)完成
9)生成界面如下,一個.exe簡單界面形成了
10)刪除“TODO:在此放置對話框控件“
4.2添加相應的控件
1)在工具欄中選擇相應的控件,添加到界面上,如下
2)右鍵屬性,修改每個控件的ID和名稱,以及相應的屬性得到結果如下
3)在項目類向導中,給控件添加成員變量和設置類型
4.3給控件添加功能代碼
1)雙擊相應功能按鈕,進入編寫代碼區。列如雙擊清空按鈕,則進去如下代碼編寫區
在
// TODO:在此添加控件通知處理程序代碼。處編寫相應的功能代碼
4.4編譯測試
1)完成代碼編寫后,點擊調試->開始執行(Ctrl + F5)進行編譯測試
2)在出現的應用程序中輸入相應的內容進行測試,測試結果如下:
?
第五章、結果分析
5.1問題分析
在設計過程中遇到很多問題,下面是遇到的一些問題和具體的解決辦法
問題一:
編譯的exe應用程序在本機上能運行,但是不能再其他PC上運行。(既然設計了一個應用程序當然是希望在所有的PC上都能成功的運行,但是在開始設計的時候往往自己編譯的程序只能在本機上運行。)
解決方案:
在項目屬性中,常規設置中的MFC的使用,修改成在靜態庫中使用MFC即可!
問題二:
成功編譯后想加個按鈕,添加后雙擊這個按鈕后進去編譯代碼區,但是沒寫代碼覺得這個按鈕沒用,想刪除,但是刪除后,重新編譯出現錯誤,怎么解決。(明明把按鈕刪除了,開始都可以成功編譯,為什么現在會出現錯誤呢?)
解決方案:
在使用MFC編譯應用程序時,雙擊按鈕后不單單只是生成一個功能函數,還會生成一個關聯,往往在下面圖中的代碼上,找到并刪除與按鈕相關的相應的語句即可。
問題三:
在MFC中如何徹底的刪除一個類呢?(往往添加了一個類,后來發現不對,要刪除,怎樣才能徹底的刪除呢?)
解決方案:
首先在解決方案資源管理器中,找到相應的頭文件和源文件,刪除掉。然后關閉項目,到項目文件中刪除相應的.h和.cpp文件。
問題四:
UpdateData()函數的使用方法
解決方案:
UpdateData()函數有兩個參數,分別是true,false
UpdateData(true)用窗體上控件中的內容來更新和控件相關連的變量的值(只能更新value類型的變量)
例如:
你在你的窗體中有一個Edit控件,為這個控件關聯了
CString類型的變量
m_strName;你在控件中添入內容之后,必須調用
UpdateData(true);才能把你添入的內容傳給m_strName這個變量
UpdateData(false);
和上面的正好相反,還是以上面的Edit為例,當你在程序中改變了m_strName變量的內容的時候,如果你想讓那個Edit也顯示更新后的
m_strName,就必須調用
UpdateData(false);
這樣在你的Edit中才能顯示更新完的變量的值!
第六章、總結
經過長達一個星期的課程設計終于完成了,雖然這個星期也辛苦,每天都是在電腦旁,不停的編寫代碼和測試程序。但是當一個應用程序設計出來了過后,一切的痛苦感覺都是值得的,看著自己辛辛苦苦寫出來的東西,雖然不是很高大上,但是那種喜悅感還是有的。還是有點成就感的,盡管這是個非常簡單的MFC的應用程序的設計,但是不管怎么說是自己這個星期的勞動成果。
這個星期雖然只是做個簡單的設計,但是還是學到了很多的知識。從一開始連MFC是什么都不知道,到自己可以寫一個應用程序,我覺得這就是進步,就是學習。在這段時間里,我不僅學到了專業知識,更重要的是我學會了如何去學習,如何在自己一無所知的時候,利用身邊的工具去學習知識。這幾天我不斷的查書,不斷的從網上找資料,教程,自己學習有關MFC的編程知識。在設計的過程中,遇到了很多問題,自己也學會了如何獨立的去解決問題,而不是像以前一樣,遇到問題的時候要么去問別人要么就是逃避,我覺得這才是最重要的。
另外,在做課設的時候我還發現了,作為一個程序員不管在什么時候都要做好備份的工作,因為你不知道什么時候會出現一些不可預料的錯誤,輕者修改一些就ok了,重者會讓你這一段時間的成果毀于一旦。。。。。。那時候才知道什么叫一失足成千古恨。
?
參考文獻:
? 1.百度文庫
C++語言程序設計(第四版)鄭莉董淵何江舟編著
MFC編程技巧與范例詳解曾凡鋒苗雨編著
總結
以上是生活随笔為你收集整理的计算机网络课程设计报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue项目登录及token验证 vue-
- 下一篇: TCP/IP详解卷1中文版勘误表前言