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

正文內(nèi)容

基于udp網(wǎng)絡(luò)通信系統(tǒng)的服務(wù)端程序的設(shè)計(jì)說明-在線瀏覽

2025-08-14 19:31本頁面
  

【正文】 自的數(shù)據(jù)傳輸通道。 (3)數(shù)據(jù)報(bào)長(zhǎng)度(16位)。理論上,包含報(bào)頭在內(nèi)的數(shù)據(jù)包的最大長(zhǎng)度為65535字節(jié)。(4)校驗(yàn)值(16位)??蛻魴C(jī)一方,UDP應(yīng)用程序功能如下:(1) 打開通信信道(申請(qǐng)一套接字),并連接到服務(wù)器在主機(jī)的保留端口,該端口對(duì)應(yīng)服務(wù)器的UDP進(jìn)程。(3) 從服務(wù)器方收到最終應(yīng)答結(jié)果,或在不再請(qǐng)求時(shí)關(guān)閉信道并終止客戶機(jī)進(jìn)程。(2) 等待客戶請(qǐng)求到達(dá)指定端口。(4) 繼續(xù)等待客戶機(jī)請(qǐng)求。本課程設(shè)計(jì)主要負(fù)責(zé)的是通訊程序客戶端的設(shè)計(jì)。 聊天模塊設(shè)計(jì)流程圖服務(wù)器端設(shè)計(jì)程序得出當(dāng)前服務(wù)器的地址客戶端輸入所要連接的服務(wù)器地址地址是否相同輸入客戶端發(fā)送的信息設(shè)置服務(wù)器端端口號(hào)為80接收客戶端發(fā)送的消息,發(fā)出服務(wù)器消息設(shè)置客戶端端口號(hào)為80接收服務(wù)器發(fā)送到消息,發(fā)出客戶端消息接受客戶端發(fā)送的消息,發(fā)出服務(wù)器消息消息內(nèi)容是否為NULL結(jié)束通訊 即時(shí)通訊程序客戶端/服務(wù)器端聊天模塊設(shè)計(jì)流程圖如圖所示。,命名為UDPChat。 //啟動(dòng)服務(wù)器 }}class UDPServer extends Thread { public UDPServer() { } //缺省構(gòu)造函數(shù) public void run() { try { DatagramSocket socket = new DatagramSocket(80)。 //得到服務(wù)器地址,并打印出來 //實(shí)現(xiàn)客戶端和服務(wù)器端的連續(xù)通信 while (true) { // 接收 byte[] instr = new byte[200]。 (receive)。 //提取數(shù)據(jù) (客戶端消息: + ())。 //打印消息 str = new BufferedReader(new InputStreamReader()).readLine()。 outstr = ()。 //向客戶機(jī)發(fā)送數(shù)據(jù) (send)。 } }文件傳輸模塊核心代碼如下: public void run() { (Connected from + ())。 //定義字符流 PrintWriter out = new PrintWriter( new BufferedWriter(new OutputStreamWriter(())), true)。 HandleInput handleInput = new HandleInput()。 (outputLine)。 //每次讀一行 (outputLine)。 if((bye)) //結(jié)束標(biāo)志 break。 /線程休眠 InputStream fileInput = new FileInputStream(new File(DEFAULT_FILE_NAME))。 //創(chuàng)建字節(jié)輸出流 byte[] buf = new byte[2048]。 while(num != 1){ (buf, 0, num)。 num = (buf)。 //關(guān)閉輸入流 ()。 ()。 ()。 } catch (InterruptedException e) { // TODO Autogenerated catch block ()。 //定義一個(gè)map private String username = 。 public HandleInput(){ (me, me)。 (123, 123)。 //創(chuàng)建一個(gè)ServerSocket (Server Started)。 //等待連接 try { new SimpleServer(theSocket)。 ()。 } finally { if(serverSocket != null) ()。 } } } 運(yùn)行程序運(yùn)行程序,要結(jié)合服務(wù)器端程序,運(yùn)行服務(wù)器端程序,結(jié)果如圖12。圖13 客戶端程序運(yùn)行結(jié)果客戶端對(duì)話框輸入所要連接的服務(wù)器的IP地址,進(jìn)行客戶端和服務(wù)器端的連接,連接后,出現(xiàn)如圖14結(jié)果。其程序執(zhí)行結(jié)果如圖15所示。圖16 請(qǐng)求在客戶端上下載服務(wù)器上的文件圖17在客戶端登陸上服務(wù)器圖18 在客戶端成功下載服務(wù)器上的文件4結(jié)束語 經(jīng)過兩個(gè)星期的學(xué)習(xí)和實(shí)踐,我也算是順利的完成了這次課程設(shè)計(jì),在實(shí)踐過程中遇到了很多的困難,感覺自己很難將理論與實(shí)踐相結(jié)合,覺得我們學(xué)習(xí)的那些知識(shí)也派不上用場(chǎng),通過這次課設(shè),我深刻的認(rèn)識(shí)到實(shí)踐與理論必須要想結(jié)合才能使所學(xué)的知識(shí)變成可用的,通過自己的努力和老師同學(xué)們的幫助,多了一種看待問題的角度;我也發(fā)現(xiàn)了我所學(xué)知識(shí)不扎實(shí),只是走馬觀花的應(yīng)付考試,在以后的學(xué)習(xí)中需要時(shí)刻的告誡自己,踏踏實(shí)實(shí)做好每一步。首先,我進(jìn)一步弄懂了JAVA語言的編程方法和原則,并學(xué)會(huì)了編寫java程序。本次課程設(shè)計(jì)是實(shí)現(xiàn)一個(gè)UDP即時(shí)通訊程序。另外,使我對(duì)UDP協(xié)議的特點(diǎn)和工作過程有了更深的了解。它工作于傳輸層,是傳輸層的重要協(xié)議之一。 本次課程設(shè)計(jì)使我明白了知識(shí)的重要性,同時(shí)也更加懂得實(shí)踐更不可少。同時(shí),也使我認(rèn)識(shí)到自己動(dòng)手能力太差,為我以后的學(xué)習(xí)和發(fā)展提供了一個(gè)警鐘!本次課程設(shè)計(jì)的過程中,雖然遇到了不少問題,但最后還是成功的完成了。參考文獻(xiàn)[1] .潘愛民.計(jì)算機(jī)網(wǎng)絡(luò)(第四版).清華大學(xué)出版社,2004[2]孫衛(wèi)琴.JAVA面向?qū)ο缶幊蹋娮庸I(yè)出版社,2006[3] 張立 等.基于Client/Server模式的數(shù)據(jù)庫應(yīng)用軟件的設(shè)計(jì)與實(shí)現(xiàn).計(jì)算機(jī)應(yīng)用研究[J],1999[4] 俞俊 / 李功 / 汪曉平.Java網(wǎng)絡(luò)編程.清華大學(xué)出版社,2005[5] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)(第四版)[M].電子工業(yè)出版社,2003附錄1:聊天模塊客戶端程序設(shè)計(jì)清單package 。import 。import 。import 。 //調(diào)用UDPClient()函數(shù),啟動(dòng)客戶端 }}class UDPClient extends Thread { public UDPClient() { } public void run() { //和服務(wù)器之間進(jìn)行連接 (請(qǐng)輸入所要通訊的服務(wù)器的地址:)。 //定義一個(gè)數(shù)組,用來保存服務(wù)器地址,初始化為NULL. //進(jìn)行異常處理 try { serverip = new BufferedReader(new InputStreamReader()).readLine()。 }finally{ try { DatagramSocket socket = new DatagramSocket()。 //打印消息 String send = new BufferedReader(new InputStreamReader()).readLine()。 //定義一個(gè)字節(jié)數(shù)組,長(zhǎng)度為客戶端所發(fā)送的消息長(zhǎng)度 outstr = ()。 DatagramPacket packet = new DatagramPacket(outstr, , address, 80)。 //發(fā)送數(shù)據(jù)報(bào) // 接收 byte[] instr = new byte[200]。 //接收數(shù)據(jù)報(bào) (packet)。 //取出信息 (接受到的服務(wù)器消息: + out)。} }}}附錄2:聊天模塊服務(wù)器程序設(shè)計(jì)清單package 。import 。import 。public class Server { public static void main(String[] args) { new UDPServer().start()。 //建立一個(gè)Socket連接,端口號(hào)為80 (服務(wù)器IP地址為: + ().getHostAddress())。 //定義數(shù)組,用來保存客戶端發(fā)送來的數(shù)據(jù) DatagramPacket receive = new DatagramPacket(instr, )。 //接收客戶機(jī)發(fā)過來的數(shù)據(jù) String str = new String(())。 //
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1