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

正文內(nèi)容

基于udp協(xié)議的聊天程序設(shè)計(jì)報(bào)告-資料下載頁

2025-02-04 03:17本頁面

【導(dǎo)讀】網(wǎng)絡(luò)聊天已經(jīng)成為人們工作生活中傳遞信息、交流感情的重要。工具,給人們帶來了很大的方便。本課題是開發(fā)一個(gè)基于UDP的局域網(wǎng)。服務(wù)器端具有服務(wù)器端口設(shè)置,此聊天工具能實(shí)現(xiàn)多人聊天功能,并且避免了服務(wù)器忙或與服務(wù)器無法連接。議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議直接位于IP協(xié)議的頂層。協(xié)議的主要作用是將網(wǎng)絡(luò)數(shù)據(jù)流量壓縮成數(shù)據(jù)報(bào)的形式。每一個(gè)數(shù)據(jù)報(bào)的前8個(gè)字節(jié)用來包含報(bào)頭。正是采用這一機(jī)制實(shí)現(xiàn)對同一時(shí)刻內(nèi)多。項(xiàng)應(yīng)用同時(shí)發(fā)送和接收數(shù)據(jù)的支持。節(jié)存放端口號,所以端口號的有效范圍是從0到65535。數(shù)據(jù)報(bào)的長度是指包括報(bào)頭和數(shù)據(jù)部分在。數(shù)據(jù)報(bào)的最大長度根據(jù)操作環(huán)境的不。UDP協(xié)議使用報(bào)頭中的校驗(yàn)值來保證數(shù)據(jù)的安全。因失控和高速UDP流量負(fù)荷而導(dǎo)致的擁塞崩潰效應(yīng)?;驹O(shè)備往往就成為降低UDP過大通信量的有效工具。從以上特點(diǎn)可知,UDP提供的是無連接的、息,然后顯示出來。

  

【正文】 eam) * */ public ClientFrame(String name,Socket socket) { (310,660)。 (290,50)。 (聊天室客戶端 +name+)。/* 指定窗口的標(biāo)題 */ = socket。/* 接收從 LoginFrame中傳遞過來的 Socket */ = name+ 說: 。 wele = new JTextField( +name+ 歡迎您來到聊天室 ,100)。 ()。 (false)。 copyright = new JTextField( all copyright @ TOPking )。 (false)。 allmsg = new JTextArea()。 (false)。 ( 系統(tǒng)消息 : 歡 迎登錄在線聊天室 \n)。 js = new JScrollPane(allmsg)。//為 JTextArea添加滾動(dòng)條 chatmsg = new JTextField(在此輸入聊天信息 )。 (new listen())。 send = new JButton(發(fā)送 )。 (new listen())。/* 添加事件監(jiān)聽器 */ try { 26 out = new DataOutputStream(())。 in = new DataInputStream(())。 } catch (IOException e) {(null, 系統(tǒng)異常 ,錯(cuò)誤 ,)。} addpotocontainer()。 /* 當(dāng)用戶關(guān)閉窗口時(shí)進(jìn)行相關(guān)的處理 eg:Socket Data(Input/Output)Stream 的關(guān)閉 */ (new WindowAdapter(){ public void windowClosing(WindowEvent we) { sendmsg(quitamp。logout)。/* 向服務(wù)器 端發(fā)送關(guān)閉信息 */ isConnected = false。 destory()。/* 銷毀窗口資源 */ } })。 new Thread(new linread()).start()。/* 啟動(dòng)讀取信息線程 */ } public void addpotocontainer() { Container c = ()。 (null)。 (75,10,150,20)。 (10,50,280,500)。 (10,560,180,30)。 (220,560,70,30)。 (10,600,280,20)。 (wele)。 (js)。 (chatmsg)。 (send)。 (copyright)。 27 (true)。 (false)。 } class listen implements ActionListener { public void actionPerformed(ActionEvent e) { // TODO Autogenerated method stub if(()==send||()==chatmsg) { String msg = ().trim()。 if(.equals(msg)) { (null,發(fā)送信息不能為空 !,錯(cuò)誤,)。 } else {sendmsg((new Date()).toLocaleString()+\n+nic+msg+\n)。()。} } } } /* 向服務(wù)器端發(fā)送信息 */ public void sendmsg(String m) { if(isConnected)//如果 socket的輸出流沒關(guān)閉 { try { (m)。 } catch (IOException e) { (null,發(fā)送信息失敗 !(系統(tǒng)異常 ),錯(cuò)誤 ,)。 } } else { 28 (null,發(fā)送信息失敗 !(服務(wù)器關(guān)閉 /網(wǎng)絡(luò)故障 ),錯(cuò)誤 ,)。 } } /* 讀取信息線程 */ class linread implements Runnable { public void run() { read()。 } public void read() { while(isConnected) { try { String msg = ()。 if(SYSTEM_CLOSED.equals(msg)) { (null,讀取消息失敗 (服務(wù)器關(guān)閉 /網(wǎng)絡(luò)故障 )! ,錯(cuò)誤 ,)。 isConnected = false。 } else (msg+\n)。 } catch (IOException e) { } }//end while (null,讀取消息失敗 (服務(wù)器關(guān)閉 /網(wǎng)絡(luò)故障 )! ,錯(cuò)誤 ,)。 }//end read() } public void destory() { try { ()。 29 ()。 ()。 } catch (IOException e) { } ()。 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1