基于TcpIP協議的網絡通訊設計(服務器)_第1頁
基于TcpIP協議的網絡通訊設計(服務器)_第2頁
基于TcpIP協議的網絡通訊設計(服務器)_第3頁
基于TcpIP協議的網絡通訊設計(服務器)_第4頁
基于TcpIP協議的網絡通訊設計(服務器)_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于TCP/IP協議的網絡通訊設計 JISHOUUNIVERSITY專業課課程論文題 目:基于 TCP/IP協議的網絡通訊設計作 者:學 號:所屬學院:信息科學與工程學院專業年級:總 評 分:完成時間:吉首大學信息科學與工程學院基于Tcp/IP協議的網絡通訊設計(吉首大學信息科學與工程學院,湖南 吉首 41600)摘要本論文設計的目的是基于TCP/IP點對點通訊技術,以VB為平臺設計并實現了一個基于C/S(客戶端/服務器)模式的五子棋網絡游戲的總體設計方法。本設計主要是建構服務器端,采用TCP/IP網絡協議,使用VB提供的Winsock控件來實現與客戶端的網絡通信功能。主要功能是使客戶端能連接

2、到服務器端,雙方可以通過網絡對戰,并且能夠自動判斷勝負。特點是支持雙方網上聊天功能,還增添了悔棋、復盤、保存棋局/聊天記錄等功能。關鍵詞:Winsock;VB;C/S工作模式;五子棋;TCP/IPRealization of network communication design based on Tcp/IP protocol (Server)AbstractThe thesis is aimed to achieve a C/S (Client/Server) mode backgammon online game based on the point to point communic

3、ation technology by TCP/IP, with the Microsoft Visual Basic software platform. This design main to build a server-side that applied the TCP/IP protocol as the network protocol and used the tool of Visual Basic, Winsock, to realize the network communication. The functions of the design contain Client

4、 and Server side can be connected to each other and plays the backgammon games online, then it can auto judge the victory or defeat. The designs feature is to support chats online, undo, and replay, save games and chat records.Keywords: Winsock; Microsoft Visual Basic; Client/Server mode; backgammon

5、 game; TCP/IP目錄第一章緒論11.1 五子棋的簡介1第二章 開發工具的選擇22.1 開發背景與現狀2第三章 網絡通訊的基本原理33.1 Tcp/IP 體系結構33.1.1 Tcp/IP簡介33.1.2 Tcp/IP特點33.1.3 Tcp/IP協議的應用43.2 Winsock533需求分析與總體設計73.3.1 需求分析 五子棋功能需求 五子棋的規則73.3.2 總體分析734 五子棋游戲設計93.4.1 設計原理93.4.2通訊流程93.4.3 算法描述 棋盤繪制算法 判斷輸贏算法 下棋決策算

6、法 聊天記錄管理算法 下棋記錄管理算法18第四章 軟件測試204.1 登陸界面設計204.2 下棋界面設計21第五章 軟件測試225.1 問題的發現225.2 問題的解決22第六章 總結與體會236.1 總結236.2 體會23參考文獻253第一章緒論1.1 五子棋的簡介眾所周知,五子棋是我國古代的、傳統的黑白棋種之一,大約在南北朝時期隨圍棋一起先后傳入朝鮮、日本等地。五子棋國際上正式稱“連珠”,五子棋簡單易學而又富有趣味,為大眾喜愛。然而,五子棋又包含深奧的哲理和技巧,尤其是隨著國際職業連珠運動的發展和競賽規則的逐步完善,技法和戰術有了很大發展,因此已不再

7、是簡單的游戲。五子棋與圍棋棋子相似,圍棋像軍團作戰,博大精深;五子棋則短兵相接,兇險復雜。五子棋不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養性。五子棋既有現代休閑的明顯特征“短、平、快”,又有古典哲學的高深學問“陰陽易理”;它既有簡單易學的特性,為廣大人民群眾所喜聞樂見,又有深奧的技巧和高水平的國際性比賽;它的棋文化源淵流長,具有東方的神秘和西方的直觀;既有“場”的概念,亦有“點”的連接。它是中西文化的交流點,是古今哲理的結晶。第二章 開發工具的選擇2.1 開發背景與現狀在很早以前五子棋軟件就已經被開發出來了,當時的五子棋軟件僅提供了“人機模式”與“雙人模式”。“人機模式”是指,人

8、與計算機進行對弈,計算機按照事先編寫好的算法程序來進行下棋;“雙人模式”是指,兩個人通過交替使用同一臺計算機來進行下棋。無論是選擇哪一種模式,所有的操作都必須在同一臺計算機上來往完成,棋局無法在異地計算機之間來進行,故而也叫單機版五子棋軟件。隨著計算機網絡的迅猛發展,異地計算機之間的通信變得十分便捷。這也為異地間的用戶通過網絡來進行下棋提供了可能。網絡五子棋軟件利用TCP/IP協議,在異地的玩家之間建立起TCP連接,并用它來交換棋局的各種數據信息。所以,網絡五子棋軟件在下棋以前必須要對相關的網絡參數進行設置,才能實現玩家雙方的成功連接。連接成功后,玩家雙方輪流下棋,并將每一步下棋的信息通過網絡

9、傳送給對方,使得雙方棋盤上的棋子保持一致,并且提供了“互動聊天”“悔棋”、“復盤”和“保存棋局”等功能。第三章 網絡通訊的基本原理 3.1 Tcp/IP 體系結構3.1.1 Tcp/IP簡介TCP/IP 作為 Internet的核心協議,通過近二十多年的發展已日漸成熟,并被廣泛應用于局域網和廣域網中,目前已成為事實上的國際標準。TCP/IP 協議集確立了 Internet 的技術基礎。TCP/IP 協議主要作用于 OSI 網絡參考模型中的網絡層(第3層)、傳輸層(第4層)和應用層(第7層)。數據鏈路層(第2層)的功能主要應用于其它協議如以太網(Ethernet)、ATM、幀中繼(Frame R

10、elay),以及多數供應商特定協議等。TCP/IP 充分支持所有通用第2層協議。TCP/IP 組中的應用程序通常直接運行于傳輸層協議 TCP 或 UDP 上面,并不需要表示層(第6層)和會話層(第5層)的支持。3.1.2 Tcp/IP特點TCP/IP協議的核心部分是傳輸層協議(TCP、UDP),網絡層協議(IP)和物理接口層,這三層通常是在操作系統內核中設計。因此用戶一般不涉及。編程時,編程界面有兩種形式:一、是由內核心直接提供的系統調用;二、使用以庫函數方式提供的各種函數。前者為核內設計,后者為核外設計。用戶服務要通過核外的應用程序才能設計,所以要使用套接字(socket)來設計。TCP/I

11、P協議并不完全符合OSI的七層參考模型。傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。而TCP/IP通訊協議采用了4層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求。這4層分別為: 圖 3-1-2 TCP/IP參考模型應用層:在TCP/IP模型的最上層是應用層(Application Layer),它包含所有的高層的協議。高層協議有:虛擬終端協議TELNET、文件傳輸協議FTP、電子郵件傳輸協議SMTP、域名系統服

12、務DNS、網絡新聞傳輸協議NNTP和HTTP協議等等。傳輸層:傳輸層位于互聯網層的上一層,傳輸層的協議只存在于主機之中,它的功能是提供主機之間進程與進程的有效數據傳輸。傳輸層使用端口號向應用層中不同進程提供與該端口號相應的服務。在傳輸層中有TCP協議(Transmission Control Protocol)即傳輸控制協議,和UDP協議(User Datagram Protocol)即用戶數據報協議。互連網絡層:它是整個體系結構的關鍵部分。它的功能是負責路由選擇合適的通信節點,使數據分組能從源主機發往目的主機。這些分組到達目的主機的順序和發送的順序可能不同,因此如果需要按順序發送和接收時,高

13、層必須對分組進行排序。網絡接口層(主機-網絡層):接收IP數據報并進行傳輸,從網絡上接收物理幀,抽取IP數據報轉交給下一層,對實際的網絡媒體的管理,定義如何使用實際網絡(如Ethernet、Serial Line等)來傳送數據。TCP協議是建立在IP協議之上的面向連接的端到端的通信協議。由于IP協議是無連接的不可靠的協議,IP協議不可能提供任何可靠性保證機制,所以,TCP協議的可靠性完全由自身實現。TCP協議采取了確認、超時重發、流量控制等各種保證可靠性的技術和措施。TCP和IP兩種協議結合在一起,實現了傳輸數據的可靠方法。它的安全和可靠性比UDP要高出很多。由于網絡五子棋對實時性要求較高,綜

14、合考慮的結果,本軟件應使用TCP/IP協議。3.1.3 Tcp/IP協議的應用TCP(Transfer Control Protocol)允許你創建并維護一個與遠程計算機的連接,使用該連接,兩臺計算機之間就可以交換數據了。如果你在創建一個客戶應用程序,你必須知道服務器計算機的名字T注:建議用IP地址或IP地址(RemoteHost屬性),以及要監聽的端口號(RemotePort屬性),然后調用Connect方法。如果你在創建一個服務器應用程序,設置要監聽的端口號(LocalPort屬性),調用Listen方法。當客戶建立連接請求時,產生ConnectionRequest事件。要完成該連接,在C

15、onnectionRequest事件中調用Accept方法。一旦建立了連接,兩臺計算機之間就可以發送和接受數據了。要發送數據,調用SendData方法。當接受數據時,產生DataArrival事件。在DataArrival事件中調用GetData方法來檢取數據。3.2 Winsock1.TCP協議:TCP(Transfer Control Protocol)是傳輸控制協議的簡稱,是基于連接的協議,在數據傳輸之前必須先建立連接。通過TCP協議建立的是客戶/服務器通信方式。 2.UDP協議: UDP(User Data Protocol)是用戶數據文報協議的簡稱,兩臺計算機之間的傳輸類似于傳遞郵件

16、;兩者之間沒有明確的連接,可作為服務器,也可作為客戶機。 使用UDP協議建立對等通信和通過TCP建立客戶/服務器通信的方法略有不同,它不需要建立客戶和服務器,而是建立對等通信。 3. Winsock屬性: LocalPort:返回或者設置所用到的本端口;如果指定的是端口 0,就使用一個隨機端口。 Protocol:返回或設置Winsock所用的協議是TCP或UDP。 State:返回控件的狀態,用枚舉類型來表示。 常數值描述SckClosed0缺省值,關閉SckOpen1打開SckListening2偵聽SckConnectionPending3連接掛起SckResolvingHos4識別主機

17、SckHostResolved5已識別主機SckConnecting6正在連接SckConnected7已連接SckClosing8同級人員正在關閉連接SckError9錯誤表1 Winsock控件的State屬性及其描述4. Winsock方法: Listen:用于服務器程序,等待客戶訪問。 Connect:用于向遠程主機發出連接請求 Accept:用于接受一個連接請求 Senddata: 此方法用于發送數據 Getdata: 用來取得接收到的數據 格式:Winsock對象.getdata 變量 ,數據類型 ,最大長度 Close: 關閉當前連接 格式:Winsock對象.close 5.事

18、件: DataArrival:新數據到達時出現;獲取一個 GetData 調用中的全部數據。 ConnectionRequest:當遠程計算機請求連接時接受連接請求。 SendComplete :在完成一個發送操作時出現 。 SendProgress :在發送數據期間出現 。 Close :當遠程計算機關閉連接時出現。33需求分析與總體設計3.3.1 需求分析軟件的需求分析是軟件生存期中重要的一步,也是決定性的一步。只有通過需求分析才能把軟件功能和性能的總體概念描述為具體的軟件需求規格說明,從而奠定軟件開發的基礎。在此階段,了解用戶要求本軟件必須滿足的所有功能和限制,以及用戶對軟件功能和性能的

19、要求,弄清用戶想要軟件“做什么”,準確地表達用戶的要求。 五子棋功能需求能通過網絡進行下棋符合五子棋的基本規則提供 “復盤”、“悔棋”等功能提供玩家之間的聊天功能有背景音樂提供保存聊天記錄和下棋記錄的功能 五子棋的規則規則沒有依照國際的規定,所以在19x19的棋盤上,只要任一方先連成五顆就獲勝。當主機的人為先手,下黑子。3.3.2 總體分析在需求分析結束后,已經弄清楚了軟件的各種需求,較好地解決了用戶要軟件“做什么”的問題,接下來就將著手實現軟件的需求,即要著手解決“怎么做”的問題。在這個階段著重實現需求的程序模塊設計問題,并將需求轉化為軟件的系統結構,進行模塊的劃

20、分,確定每個模塊的功能、接口及模塊之間的調用關系。根據需求分析制訂出整個軟件的系統結構圖,如圖2.2所示:圖2-234 五子棋游戲設計3.4.1 設計原理使用VB提供的Winsock控件來實現網絡通信,采用的網絡協議是Tcp/IP協議,包括服務器端和客戶端,游戲雙方一方先運行服務器端,另一方運行客戶端,連接到服務器端,雙方通過網絡對戰,能夠自動判斷勝負,還支持雙方聊天的功能。該游戲的界面能顯示目前的對弈狀態,同時能顯示對弈雙方之間的聊天信息。通過它建立起服務器與客戶端之間的連接,服務器端負責接受客戶端的連接和處理客戶端的數據,客戶端負責連接到服務器并處理游戲時的交互。流程圖如下:圖3.13.4

21、.2通訊流程1.服務器端程序實現過程:(1)服務器程序必須設置好LocalPort屬性,作為偵聽端口,該值為一個整數(只要是一個其它TCP/IP應用程序沒有使用過的值即可)。 (2)使用Listen方法進入偵聽狀態,等待客戶機程序的連接請求。 (3)客戶機程序發出連接請求,使服務器程序產生ConnectionRequest事件,該事件得到一個參數requestID。 (4)服務器程序用Accept方法接受客戶機程序的requestID請求。這樣,服務器程序就可以用SendData方法發送數據了。Accept方法必須用上一步得到的requestID作為其參數。 (5)當服務器程序接收到數據時,產

22、生DataArrival事件,參數BytesTotal包含接收到的數據字節數。在該事件中,可以用GetData方法接收數據。 (6)如果接受到Close事件,則用Close方法關閉TCP/IP連接。 2.客戶端程序的實現過程是: (1) 客戶程序設置Remotehost屬性,以便指定運行服務器程序的主機 名,該字符串可在“控制面板|網絡|標識|計算機名”中查到。 (2) 設置RemotePort屬性,以便指定服務器程序的偵聽端口。 (3)使用Connect方法,向服務器提出連接請求。 (4)服務器接受客戶機程序的請求,客戶機程序產生Connect事件,就可以用SendData方法發送數據了。

23、(5)當客戶機程序接收到數據時,產生DataArrival事件,參數BytesTotal包含接收到的數據字節數。在該事件中,可以用GetData方法接收數據。 (6)如果接受到Close事件,則用Close方法關閉連接。3.下圖為TCP協議通信流程3.4.3 算法描述 棋盤繪制算法繪制一個19x19的棋盤Public Sub growQp() Picture1.Cls Picture1.Left = 0 Picture1.Top = 0 Picture1.Width = 10000 Picture1.Height = 10000 Picture1.Refresh x = 200

24、y = 200 While x < 9200 x = x + 500 Picture1.Line (x, 200)-(x, 9700) Wend While y < 9200 y = y + 500 Picture1.Line (200, y)-(9700, y) Wend Picture1.Line (100, 100)-(100, 9800) Picture1.Line (100, 100)-(9800, 100) Picture1.Line (100, 9800)-(9800, 9800) Picture1.Line (9800, 100)-(9800, 9800) Pict

25、ure1.Line (200, 200)-(9700, 200) Picture1.Line (200, 200)-(200, 9700) Picture1.Line (9700, 200)-(9700, 9700) Picture1.Line (200, 9700)-(9700, 9700) blackwin = False whitewin = FalseEnd Sub 判斷輸贏算法Private Sub judblack() '判斷黑是否獲勝' Dim i As Single Dim j As Single For i = 0 To 19 For j = 0

26、 To 19 If table(i, j) * table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j + 4) = 1 Then MsgBox "black win.": blackwin = True ElseIf table(i, j) * table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i + 4, j) = 1 Then MsgBox "black win.": blackwin = True Els

27、eIf table(i, j) * table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i + 4, j + 4) = 1 Then MsgBox "black win.": blackwin = True ElseIf table(i, j) * table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i - 4, j + 4) = 1 Then MsgBox "black win.&

28、quot;: blackwin = True End If Next j Next iEnd SubPrivate Sub judwhite() '判斷白是否獲勝' Dim i As Single Dim j As Single For i = 0 To 19 For j = 0 To 19 If table(i, j) * table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j + 4) = 32 Then MsgBox "white win.": whitewin = True E

29、lseIf table(i, j) * table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i + 4, j) = 32 Then MsgBox "white win.": whitewin = True ElseIf table(i, j) * table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i + 4, j + 4) = 32 Then MsgBox "white win.": white

30、win = True ElseIf table(i, j) * table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i - 4, j + 4) = 32 Then MsgBox "white win.": whitewin = True End If Next j Next iEnd Sub 下棋決策算法Private Sub picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y A

31、s Single) '人走' Dim a As Single Dim b As Single If sckServer.State = 0 Then MsgBox "尚未連接,不能下棋!" ElseIf blackturn = False Then If (x - 200) Mod 500 < 250 Then a = x - (x - 200) Mod 500 ElseIf (x - 200) Mod 500 > 250 Then a = x + 500 - (x - 200) Mod 500 End If If (y - 200) Mod 5

32、00 < 250 Then b = y - (y - 200) Mod 500 ElseIf (y - 200) Mod 500 > 250 Then b = y + 500 - (y - 200) Mod 500 End If i = (a - 200) / 500 j = (b - 200) / 500 '上面是鼠標在棋盤所點的具體位置轉換成坐標位置 If (table(i, j) = 0) Then sendstr = growQdata(i, j, "vbWhite") sckServer.SendData sendstr blackturn =

33、 True huiqi.Enabled = True intstep = intstep + 1 intx(intstep) = i inty(intstep) = j color = color + 1 intcolor(color) = "W" Qcolor = "vbWhite" Call drawQz(i, j, Qcolor) table(i, j) = 2 judwhite If whitewin Then intanswer = MsgBox("繼續下一盤嗎?", vbYesNo) If intanswer = vbYe

34、s Then blackturn = True restart growQp Else MsgBox "如需保存棋局,請單擊(保存)按鈕 " End If End If Else MsgBox "此處已經有棋子,請下別處!" End IfEnd IfEnd IfEnd Sub 聊天記錄管理算法 If Dir("c:Serverdatachats服務次數記錄.txt") <> "服務次數記錄.txt" Then Open App.Path & "" & &

35、quot;datachats" & "服務次數記錄" & ".txt" For Output As #2 Print #2, 0 Print #2, Date Close #2 For n = 0 To 2 FileName = App.Path & "" & "datachats(" & n & ")" & Date & "服務聊天記錄" & ".txt" Open Fil

36、eName For Output As #1 Close #1 Next nElse Open App.Path & "" & "datachats" & "服務次數記錄" & ".txt" For Input As #3 jlcount = "" Line Input #3, jlcount Line Input #3, d Close #3 r = CInt(jlcount) If r <= 1 Then a = Date If Trim(d) <

37、> a Then r = r + 1 Open App.Path & "" & "datachats" & "服務次數記錄" & ".txt" For Output As #4 Print #4, r Print #4, Date Close #4 fn = Dir("c:Serverdatachats(" & r & ")" & "*.txt") oldname = "c:Serve

38、rdatachats" & fn newname = "c:Serverdatachats(" & r & ")" & Date & "服務聊天記錄" & ".txt" Name oldname As newname FileName = App.Path & "" & "datachats(" & r & ")" & Date & "服務聊

39、天記錄" & ".txt" Open FileName For Output As #1 Print #1, "" Close #1 Else fn = Dir("c:Serverdatachats(" & r & ")" & "*.txt") oldname = "c:Serverdatachats" & fn newname = "c:Serverdatachats(" & r & &q

40、uot;)" & Trim(d) & "服務聊天記錄" & ".txt" Name oldname As newname FileName = App.Path & "" & "datachats(" & r & ")" & Trim(d) & "服務聊天記錄" & ".txt" Open FileName For Append As #1 Close #1 End

41、If ElseIf r = 2 Then r = r + 1 Open App.Path & "" & "datachats" & "服務次數記錄" & ".txt" For Output As #4 Print #4, r Print #4, Date Close #4 Else r = 0 Open App.Path & "" & "datachats" & "服務次數記錄" & &quo

42、t;.txt" For Output As #4 Print #4, r Print #4, Date Close #4 fn = Dir("c:Serverdatachats(" & r & ")" & "*.txt") oldname = "c:Serverdatachats" & fn newname = "c:Serverdatachats(" & r & ")" & Date & "

43、服務聊天記錄" & ".txt" Name oldname As newname FileName = App.Path & "" & "datachats(" & r & ")" & Date & "服務聊天記錄" & ".txt" Open FileName For Output As #1 Print #1, "" Close #1 End If 下棋記錄管理算法

44、Private Sub baocun_Click()Dim C As StringCommonDialog1.Filter = "Text Files(*.TXT)|*.txt"CommonDialog1.FilterIndex = 1CommonDialog1.ShowSavefname = CommonDialog1.FileNameOn Error GoTo nohandle Open fname For Output As #1 For i = 1 To 400 Print #1, intx(i); Next i Print #1, For i = 1 To 400

45、 Print #1, inty(i); Next i Print #1, For i = 0 To 19 For j = 0 To 19 Print #1, table(i, j); Next j Next i Print #1, Print #1, blackturn Print #1, intstep Print #1, color For i = 1 To 400 C = intcolor(i) Print #1, C Next i Print #1, Close #1nohandle: Exit SubEnd Sub第四章 軟件測試4.1 登陸界面設計登陸窗體Login如圖4.1所示:

46、圖4.14.2 下棋界面設計窗體frmserver如圖4.2所示:圖4.2第五章 軟件測試為了保證軟件的質量和可靠性,在軟件編碼完成以后,應該對軟件進行測試。測試出程序中存在的錯誤,然后進行修改。5.1 問題的發現1) 客戶端和服務器端不能夠聯機。2) 運行時直接運行游戲下棋主窗體,沒有運行登陸窗體。3) 信息窗口顯示下棋信息也顯示聊天信息。4) 在做申請悔棋和接受對方悔棋時程序段存在錯誤。5) 游戲進行了會出現各種中斷或者是程序員沒有預想的狀態。5.2 問題的解決1) 客戶端里的tcpClient.RemoteHost應該是服務器端的IP地址,而且客戶端和服務器端兩個的端口應該設置為一樣,此

47、程序LocalPort為1000。2) 首先在工程中建立一個Module的類模塊,使登陸窗體和下棋主窗體銜接起來,并且修改工程的屬性,在“通用”設置里把啟動對象設置為“Sub Main”,這樣就解決了窗體運行的問題。3) 客戶端和服務器端設置統一的信息數據格式,對通訊信息進行了加工,屬于聊天信息是以“LT”開頭,屬于下棋信息的是以“XQ”開頭,這樣就避免了雙方通訊信息的錯亂。4) 做一個允許對方悔棋的子程序和一個己方申請悔棋的子程序,這樣就是編程簡單化,邏輯性強些,從而解決了程序運行不了的問題。5) 針對這個問題,增添了沒有連接時用戶點棋盤會彈出未連接提示、規定時間內沒有連接上會提示重新連接的提示,還有清空聊天內容、重開棋局等功能,使用戶體驗程序時感覺更加良好,減少BUG。第六章 總結與體會6.1 總結本設計主要是采用TCP/IP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論