freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計(jì)算機(jī)網(wǎng)絡(luò)課設(shè)(編輯修改稿)

2024-11-19 03:40 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 接收方它不會(huì)給予保證。如果需要可靠性就必須得通過其他層來完成。4)應(yīng)用層,主要同于上層的應(yīng)用程序進(jìn)行的操作。 TCP:傳輸控制協(xié)議TCP提供的是一種有保障的服務(wù)。確保了傳輸?shù)目煽啃裕\(yùn)用TCP協(xié)議的主機(jī)在交換數(shù)據(jù)之前必須首先建立一個(gè)連接。TCP主要是利用下面的步驟來確保其服務(wù)的:1)首先在應(yīng)用程序產(chǎn)生TCP報(bào)文時(shí)會(huì)進(jìn)行大小控制,根據(jù)算法決定的發(fā)送的數(shù)據(jù)塊大小。然后再進(jìn)行發(fā)送。2)當(dāng)主機(jī)利用發(fā)出一個(gè)數(shù)據(jù)段之后,它會(huì)啟動(dòng)一個(gè)定時(shí)機(jī)制,如果在規(guī)定的時(shí)間內(nèi)接收不到確認(rèn)數(shù)據(jù),發(fā)送方就會(huì)重發(fā)。3)TCP的一端收到另一端發(fā)送來的數(shù)據(jù)時(shí),它將發(fā)送一個(gè)確認(rèn)。4)TCP還有頭部檢測(cè)。工作是檢測(cè)數(shù)據(jù)在傳輸過程中是否發(fā)生改變。如果存在改變,那么TCP將丟棄這個(gè)報(bào)文段并且不會(huì)發(fā)送收到這個(gè)報(bào)文段的確認(rèn)。5)IP數(shù)據(jù)報(bào)的順次在傳輸過程中可能會(huì)發(fā)生改變,所以TCP將對(duì)收到的數(shù)據(jù)進(jìn)行重新排序,將收到的數(shù)據(jù)重新排列以后再交給應(yīng)用層處理。6)TCP的接收端會(huì)丟棄重復(fù)的數(shù)據(jù)。7)TCP還提供控制傳輸數(shù)據(jù)大小的機(jī)制。如利用滑動(dòng)窗口機(jī)制來控制發(fā)送和接收數(shù) 據(jù)的大小。 TCP連接建立與終止建立連接(如圖2):1)一方首先發(fā)送一個(gè)連接申請(qǐng)。2)接收方發(fā)回包含服務(wù)器的初始序號(hào)的應(yīng)答。同時(shí),也發(fā)送一個(gè)收到客戶方報(bào)文的一個(gè)確認(rèn)。3)發(fā)送申請(qǐng)方接收到接收方的確認(rèn)序號(hào),建立連接。這個(gè)過程就是建立TCP連接的“三次握手”過程。連接終止(如圖2):1)提出終止的一方首先發(fā)送了一個(gè)終止連接的申請(qǐng)。2)當(dāng)接收方收到這個(gè)請(qǐng)求,會(huì)發(fā)送一個(gè)確認(rèn),再發(fā)送文件終止標(biāo)志。3)然后這個(gè)接收方程序結(jié)束連接,此時(shí)也會(huì)發(fā)送一個(gè)結(jié)束標(biāo)志和確認(rèn)。圖二三次握手與四次揮手 IP:網(wǎng)際協(xié)議IP協(xié)議是TCP/IP協(xié)議族中最為重要的協(xié)議。所有的其他協(xié)議產(chǎn)生的數(shù)據(jù)都需要以IP數(shù)據(jù)報(bào)形式來進(jìn)行發(fā)送傳輸。而且IP提供無連接、不可靠的數(shù)據(jù)報(bào)傳送服務(wù):1)IP協(xié)議不能保證IP數(shù)據(jù)報(bào)能成功地傳輸?shù)浇邮辗健H绻l(fā)生某種錯(cuò)誤時(shí),如某個(gè)路由器暫時(shí)處于阻塞狀態(tài),IP也有一個(gè)簡(jiǎn)單的錯(cuò)誤處理算法:丟棄數(shù)據(jù),再通過發(fā)送一個(gè)特定的消息報(bào)給發(fā)送端,發(fā)送端接收到之后再進(jìn)行處理。2)IP在發(fā)送數(shù)據(jù)報(bào)之后就不在關(guān)心次數(shù)據(jù)報(bào)的狀態(tài)信息。每個(gè)數(shù)據(jù)報(bào)的處理是相互獨(dú)立的。IP地址分類如下圖所示:圖三IP地址分類 UDP:用戶數(shù)據(jù)報(bào)協(xié)議UDP是一個(gè)面向數(shù)據(jù)報(bào)的傳輸層協(xié)議:進(jìn)程的每個(gè)輸出都會(huì)被封裝成一個(gè)UDP數(shù)據(jù)報(bào),并組裝成一份待發(fā)送的IP數(shù)據(jù)報(bào)。UDP不提供可靠性:其會(huì)把應(yīng)用程序傳給IP層的數(shù)據(jù)發(fā)送出去,它們能否達(dá)到目的地協(xié)議并不能保證。應(yīng)用程序必須關(guān)心IP數(shù)據(jù)報(bào)的長(zhǎng)度。如果它超過網(wǎng)絡(luò)的MTU,那么就需要對(duì)IP數(shù)據(jù)報(bào)進(jìn)行分片。 Socket網(wǎng)絡(luò)編程原理通常套接口分類:原始socket,,傳輸數(shù)據(jù)時(shí)相互獨(dú)立,無序的,。無連接設(shè)計(jì)時(shí),服務(wù)器方通常都是在等待客戶機(jī)發(fā)來信息,一有信息到來就開始進(jìn)行處理,不需要先進(jìn)行連接。其程序的流程可以用圖四表示。圖四2設(shè)計(jì)方法及思路 思路客戶端與服務(wù)器建立連接,連接是通過申請(qǐng)的套接字實(shí)現(xiàn)的,客戶打開一個(gè)套接字并把它約束在一個(gè)端口上如果成功就相當(dāng)于建立一個(gè)虛擬文件以后就可以在虛擬文件上寫數(shù)據(jù)并通過網(wǎng)絡(luò)向外傳送,完成連接后就可以通信了??蛻魴C(jī)向服務(wù)器發(fā)送請(qǐng)求,打開一個(gè)連接后,客戶機(jī)把請(qǐng)求消息送到服務(wù)器的停留端口上,完成提出請(qǐng)求操作。服務(wù)器在處理完客戶的請(qǐng)求之后,要向客戶機(jī)發(fā)送響應(yīng)消息??蛻敉ㄟ^關(guān)閉套接字來結(jié)束TCP/IP對(duì)話。當(dāng)使用TCP/IP協(xié)議發(fā)送客戶服務(wù)器服務(wù)程序時(shí),服務(wù)器需要等待任意數(shù)量客戶端的連接,以便為他們提供服務(wù)。客戶端連接服務(wù)器時(shí),必須先知道服務(wù)器的名稱。在TCP/IP中,就是服務(wù)器的IP地址和端口號(hào)。bind()函數(shù)實(shí)現(xiàn)將服務(wù)器綁定到一個(gè)已知的名字上的功能。接下來要將服務(wù)器套接字設(shè)置為監(jiān)聽狀態(tài),這是通過listen()函數(shù)完成的。在監(jiān)聽狀態(tài)下,如果客戶端向服務(wù)器發(fā)起連接請(qǐng)求,服務(wù)器通過調(diào)用accept()函數(shù)來接受該連接請(qǐng)求。服務(wù)器與客戶端完成連接后,就可以進(jìn)行數(shù)據(jù)通信了。對(duì)于客戶端來說,首先調(diào)用connect()函數(shù)向服務(wù)器發(fā)出連接請(qǐng)求。如果服務(wù)器接受了該請(qǐng)求接下來就可以與服務(wù)器通信了。WinSocket通信的步驟::(1)建立服務(wù)器端的Socket,開始偵聽整個(gè)網(wǎng)絡(luò)中的連接請(qǐng)求。(2)當(dāng)檢測(cè)到來自客戶端的連接請(qǐng)求時(shí),向客戶端發(fā)送收到連接請(qǐng)求的信息,并建立與客戶端之間的連接,再繼續(xù)進(jìn)入監(jiān)聽狀態(tài)。(3)在監(jiān)聽的過程中,如果有用戶發(fā)出了請(qǐng)求,則服務(wù)器會(huì)產(chǎn)生一個(gè)新的連接Socket來處理用戶的請(qǐng)求,而原來的Socket仍然會(huì)進(jìn)行監(jiān)聽操作。(4)當(dāng)完成通信后,服務(wù)器關(guān)閉與客戶端的Socket連接。:(1)建立一個(gè)客戶端的Socket。(2)從命令行中得到服務(wù)器的名字,并進(jìn)行查詢以得到服務(wù)器的IP地址;(3)從命令行中得到服務(wù)器所提供的端口號(hào),以便進(jìn)行下一步的操作;(4)發(fā)送連接請(qǐng)求到服務(wù)器,并等待服務(wù)器的回饋信息。(5)連接成功后,與服務(wù)器進(jìn)行數(shù)據(jù)的交互。(6)數(shù)據(jù)處理完畢后,關(guān)閉自身的Socket連接,釋放進(jìn)行連接所分配的資源,客戶端的程序運(yùn)行完畢。圖五其主要工作流程為: 服務(wù)器方首先創(chuàng)建一個(gè)socket,再調(diào)用綁定函數(shù)將該socket和本地網(wǎng)絡(luò)地址綁定,然后調(diào)用監(jiān)聽函數(shù)對(duì)socket進(jìn)行偵聽同時(shí)也規(guī)定其處理大小,之后就調(diào)用接收函數(shù)來接收連接。,待數(shù)據(jù)傳送結(jié)束后,。C/:1)Server 服務(wù)器方一般都是在等待客戶方的申請(qǐng),建立connect后再進(jìn)行通信。2)Client 客戶方會(huì)給一個(gè)已知的服務(wù)器方發(fā)送一個(gè)connect申請(qǐng),當(dāng)服務(wù)器端接收請(qǐng)求之后connect成功。3系統(tǒng)需求分析與概要設(shè)計(jì)(1)用戶端之間的信息發(fā)送,本程序需要實(shí)現(xiàn)的最基本的功能。用戶在界面上可以將自己需要發(fā)送的信息填入相應(yīng)的對(duì)話框中,點(diǎn)擊發(fā)送按鈕后,可以將信息正常的發(fā)送給相應(yīng)的其它用戶,這個(gè)過程中的客戶端與客戶端之間使用點(diǎn)對(duì)點(diǎn)發(fā)送信息,預(yù)計(jì)利用TCP/IP協(xié)議中的UDP協(xié)議,在本程序中共需要3個(gè)端口,此功能預(yù)計(jì)使用3號(hào)端口。(2)在線用戶主機(jī)IP列表的維護(hù)。在用戶發(fā)送信息之前,需要選擇相應(yīng)的目的地端IP,這也就需要客戶端擁有在線用戶主機(jī)的IP地址,這個(gè)在線主機(jī)列表的維護(hù)是需要客戶端定時(shí)自動(dòng)向服務(wù)器端發(fā)送信息,服務(wù)器端收集并維護(hù)在線用戶列表,再發(fā)送回客戶端。需要在客戶端和服務(wù)器端都使用定時(shí)器來完成此功能。此功能預(yù)計(jì)使用2號(hào)端口。(3)在C/S模式中,服務(wù)器與客戶端是相互依賴的。在客戶端啟用以后,需要查看服務(wù)器端是否在線,服務(wù)器在線才能正常使用客戶端,如果服務(wù)器不在線,則在檢測(cè)一定次數(shù)以后自動(dòng)退出客戶端程序。在使用過程中,客戶端在指定時(shí)間內(nèi)未向服務(wù)器端發(fā)送信息的,服務(wù)器認(rèn)為客戶端下線;客戶端在一定時(shí)間內(nèi)未收到服務(wù)器端信息的,認(rèn)為服務(wù)器已經(jīng)下線,則提示用戶并建議退出,在用戶一定時(shí)間后沒有退出的則自動(dòng)關(guān)閉客戶端程序。 數(shù)據(jù)需求分析(1)客戶端之間聊天信息。在控件上顯示時(shí)格式化,更易于用戶的查看自己發(fā)送或接收到的信息。(2)在線用戶聊天信息。服務(wù)器端存放在適當(dāng)?shù)目臻g中,在發(fā)送給客戶端時(shí),對(duì)信息列表進(jìn)行格式化,便于客戶端提取信息。(3)客戶端向服務(wù)器端發(fā)送的確認(rèn)在線信息。包括客戶端剛剛啟動(dòng)時(shí)的初始化信息和在使用過程中的確認(rèn)在線信息。(4)其它程序內(nèi)部可能需要設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)體(1)可靠性高,能在由于系統(tǒng)問題或其它原因產(chǎn)生錯(cuò)誤后,作出相對(duì)應(yīng)處理,比如網(wǎng)絡(luò)初始化失敗、服務(wù)器不在線等,可以提示用戶安全退出本程序,在出現(xiàn)不可知的錯(cuò)誤以后,可以盡量安全的退出程序。在程序的設(shè)計(jì)過程中,要求能盡可能多的設(shè)想到用戶使用過程中可能發(fā)生的事件,并能在判斷事件后做出相應(yīng)的處理,使程序具有較高的容錯(cuò)性能。(2)宜操作性,程序簡(jiǎn)單易懂,容易上手使用。設(shè)計(jì)界面是,簡(jiǎn)化界面的復(fù)雜性,模擬等現(xiàn)有即時(shí)通訊工具的界面,使用戶能很容易看懂并使用。(3)開發(fā)文檔易理解,保證以后自己二次開發(fā)或他人接手開發(fā)時(shí),能夠清晰的理解整個(gè)系統(tǒng)的設(shè)計(jì)思路和實(shí)現(xiàn)細(xì)節(jié)。(4)模塊化設(shè)計(jì)此軟件的功能,不同的模塊實(shí)現(xiàn)不同的功能,使得軟件易于以后的維護(hù)與擴(kuò)展,在以后可以更好的完善本軟件的功能,更方便于在工作中的應(yīng)用。(1)用戶界面程序較小,啟動(dòng)速度快。可在網(wǎng)絡(luò)中使用,有注冊(cè)功能,需進(jìn)行用戶登錄。啟動(dòng)后的應(yīng)用界面要清爽,設(shè)計(jì)要簡(jiǎn)單明了,要具有較高的易用性。(2)故障處理在遇到可預(yù)知的故障與情況時(shí),能提示用戶并自動(dòng)退出;在遇到不可預(yù)知的故障時(shí)能安全退出。Display display = ()。@Overridepublicvoid run(){(+“對(duì)我 ().asyncExec(new Runnable(){@Overridepublicvoid notifyResult(Object obj){ tr=(TalkResult)obj。t=new Thread(new Task(new MyNotify(){ createContents()。說:rn”++“rn”+new Date()+“rn”)。if(()==true){String ip=()。String content=().toString()。byte[] bs=()。//將要發(fā)送的內(nèi)容轉(zhuǎn)//將hashset中的數(shù)據(jù)顯示到table中去 ()。for(InetAddress a:hashSet){}TableItem ti=new TableItem(table, )。(new//TODO:將這個(gè)地址存到集合中(不允許重復(fù)),hashset ()。(“========”)。String[]{ ()})。成字節(jié)數(shù)組}}}intlength=。//要發(fā)送的內(nèi)容的字節(jié)數(shù)組的長(zhǎng)DatagramPacket dp=null。try {InetSocketAddress addr=newdp=new DatagramPacket(bs, length,addr)。ds=new DatagramSocket(7890)。(dp)。度InetSocketAddress(ip,)。} catch(Exception e){}()。()。}finally{ })。}))。(true)。()。Thread t2=new Thread(new ReceiveEixtMsgTask(new MyNotify(){@Overridepublicvoid notifyResult(Object obj){TalkResult tr=(TalkResult)obj。InetAddress ia=。(ia)。().syncExec(new Runnable(){@Overridepublicvoid run(){}()。for(InetAddress a:hashSet){}TableItem ti=new TableItem(table, )。(newString[]{ ()})。})。} } }))。(true)。()。()。()。while(!()){} if(!()){ } ()。//選擇ip 發(fā)送消息(new SelectionAdapter(){//退出(new SelectionAdapter(){@Overridepublicvoid widgetSelected(SelectionEvent e){MessageBox mb=new MessageBox(shell,|)。(“是否退出?”)。intr=()。if(r==32){@Overridepublicvoid widgetSelected(SelectionEvent e){} TableItem[] tis=()。if(tis==null || }} intmyport=(())。byte[] bs=“bye”.getBytes()。intlength=。for(InetAddress a:hashSet){} (0)。String ip=()。DatagramSocket ds=null。try {InetSocketAddress addr=newdp=new DatagramPacket(bs, length,addr)。ds=new DatagramSocket(myport)。(dp)。InetSocketAddress(ip,)。} catch(Exception el){}()。()。}finally{ })。//發(fā)送(new SelectionAdapter(){@Overridepublicvoid widgetSelected(SelectionEvent e){String s=()。//內(nèi)容intmyPort=(())。//發(fā)送端口 DatagramSocket ds=null。byte[] bs=()。//將要發(fā)送的內(nèi)容轉(zhuǎn)成字節(jié)數(shù)組 intlength=。//要發(fā)送的內(nèi)容的字節(jié)數(shù)組的長(zhǎng)度 if(()==true){for(InetAddress a:hashSet){String ip=()。//DatagramPacket的構(gòu)造方法參數(shù),三個(gè)參: 最后一
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1