Java五子棋課程設(shè)計(jì)報(bào)告_第1頁(yè)
Java五子棋課程設(shè)計(jì)報(bào)告_第2頁(yè)
Java五子棋課程設(shè)計(jì)報(bào)告_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄第一章 概述11.1 課程設(shè)計(jì)意義1.2 課程設(shè)計(jì)目的1.3 課程設(shè)計(jì)要求第二章 網(wǎng)絡(luò)五子棋設(shè)計(jì)的需求分析和總體設(shè)計(jì) 2.1 需求分析 2.1.1 功能需求分析 2.1.2 性能需求分析2.1.3 用戶界面需求 2.2 系統(tǒng)的主要功能 2.3 系統(tǒng)包含的類及類之間的關(guān)系 2.4 Java源文件及其功能 2.5 程序總體思路 2.6 系統(tǒng)流程圖第三章 系統(tǒng)詳細(xì)設(shè)計(jì)3.1 界面設(shè)置3.2 控制按鈕3.3 規(guī)則3.4 棋盤坐標(biāo)3.5 雙方對(duì)弈情況第四章 服務(wù)器與客戶端的設(shè)計(jì)與實(shí)現(xiàn)4.1 服務(wù)器和客戶端通信機(jī)制 4.2多線程機(jī)制 4.3 傳遞信息 4.4客戶端界面設(shè)計(jì) 4.5連接服務(wù)器 4.6判斷

2、輸贏算法第五章 課程設(shè)計(jì)總結(jié)第三章 原理分析3.1 服務(wù)器和客戶端通信機(jī)制P318最下面的文字,p319最下面的文字Socket是面向客戶/服務(wù)器模型設(shè)計(jì)的,網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通訊連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)雙向鏈路的一端稱為一個(gè)Socket。 Socket通常用來(lái)實(shí)現(xiàn)客戶方和服務(wù)方的連接??蛻舫绦蚩梢韵騍ocket寫請(qǐng)求,服務(wù)器將處理此請(qǐng)求,然后通過(guò)Socket將結(jié)果返回給用戶 。在java中使用套接字相當(dāng)簡(jiǎn)單,Java API為處理套接字的通信提供了一個(gè)類.Socket。使得編寫網(wǎng)絡(luò)應(yīng)用程序相對(duì)容易。JAVA支持流套接字(stream socket)和數(shù)據(jù)報(bào)套接字(datagram

3、 socket)。流套接字使用TCP(傳輸控制協(xié)議)進(jìn)行數(shù)據(jù)傳輸,而數(shù)據(jù)報(bào)套接字使用UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。在Java中Socket可以理解為客戶端或者服務(wù)器端的一個(gè)特殊的對(duì)象,這個(gè)對(duì)象有兩個(gè)關(guān)鍵的方法,一個(gè)是getInputStream方法,另一個(gè)是getOutputStream方法。getInputStream方法可以得到一個(gè)輸入流,客戶端的Socket對(duì)象上的getInputStream方法得到的輸入流其實(shí)就是從服務(wù)器端發(fā)回的數(shù)據(jù)流。GetOutputStream方法得到一個(gè)輸出流,客戶端Socket對(duì)象上的getOutputStream方法返回的輸出流就是將要發(fā)送到服務(wù)器端的數(shù)據(jù)流,

4、(其實(shí)是一個(gè)緩沖區(qū),暫時(shí)存儲(chǔ)將要發(fā)送過(guò)去的數(shù)據(jù))??蛻舳藛?dòng)以后,與服務(wù)器連接,服務(wù)器會(huì)啟動(dòng)一個(gè)線程來(lái)與客戶進(jìn)行文字交流。要完成這個(gè)工作,需要完成三個(gè)部分的工作:Java中有一個(gè)專門用來(lái)建立Socket服務(wù)器的類,名叫ServerSocket,可以用服務(wù)器需要使用的端口號(hào)作為參數(shù)來(lái)創(chuàng)建服務(wù)器對(duì)象。ServerSocket server=new ServerSocket(4331);這條語(yǔ)句創(chuàng)建了一個(gè)服務(wù)器對(duì)象,這個(gè)服務(wù)器使用4331號(hào)端口。當(dāng)一個(gè)客戶端程序建立一個(gè)Socket連接,所連接的端口號(hào)為4331時(shí),服務(wù)器對(duì)象server便響應(yīng)這個(gè)連接,并且server.accept()方法會(huì)創(chuàng)建一個(gè)

5、Socket對(duì)象。服務(wù)器端便可以利用這個(gè)Socket對(duì)象與客戶進(jìn)行通訊。Socket socket=server.accept();進(jìn)而得到輸入流和輸出流,并進(jìn)行封裝。reader=newBufferedReader(newInputStreamReader (socket.getInputStream();writer = new PrintWriter(socket.getOutputStream(), true);隨后,就可以使用reader.readLine()方法得到客戶端的輸入,也可以使用writer.println()方法向客戶端發(fā)送數(shù)據(jù)。從而可以根據(jù)程序的需要對(duì)客戶端的不同請(qǐng)求

6、進(jìn)行回應(yīng)。在所有通訊結(jié)束以后應(yīng)該關(guān)閉這兩個(gè)數(shù)據(jù)流,關(guān)閉的順序是先關(guān)閉輸出流,再關(guān)閉輸入流,即使用 reader.close(); writer.close();相比服務(wù)器端,客戶端要簡(jiǎn)單一些,客戶端只需用服務(wù)器所在機(jī)器的ip以及服務(wù)器的端口作為參數(shù)創(chuàng)建一個(gè)Socket對(duì)象。得到這個(gè)對(duì)象后,就可以用"建立服務(wù)器"部分介紹的方法實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。3.2 多線程機(jī)制P277紅括號(hào)括起來(lái)的內(nèi)容創(chuàng)建新線程必須編寫一個(gè)線程類,用Java編寫多線程代碼有兩種方式l 直接繼承Java的線程類Thread;l 實(shí)現(xiàn)Runnable接口無(wú)論采用哪種方式均需要在程序中編寫Run()方法,線程在運(yùn)行時(shí)要完成的任務(wù)在該方法實(shí)現(xiàn)。Thread 類封裝了線程的行為。繼承Thread類須

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論