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

正文內(nèi)容

局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-閱讀頁(yè)

2025-07-10 02:56本頁(yè)面
  

【正文】 //準(zhǔn)備從數(shù)據(jù)庫(kù)選擇呢稱和密碼 …… } 首先服務(wù)器啟動(dòng)線程監(jiān)聽,當(dāng)監(jiān)聽到有客戶端申請(qǐng)連接時(shí)根據(jù)客戶端提出的申請(qǐng)作出響應(yīng)的處理,;:odbc:javaicq的數(shù)據(jù)庫(kù),如果客戶端輸入的字符串表示登陸則服務(wù)器接收到該信息后連接數(shù)據(jù)庫(kù),準(zhǔn)備從數(shù)據(jù)庫(kù)選擇昵稱和密碼。還有通知好友、新建用戶、讀取資料、添加好友、添加好友應(yīng)答、刪除好友、退出下線功能的實(shí)現(xiàn)都是用同樣的方法來調(diào)取數(shù)據(jù)庫(kù)的,這些功能的實(shí)現(xiàn)均在Server類中一一實(shí)現(xiàn)。 如果取得客戶端輸入的字符串為”new”則代表用戶申請(qǐng)新建用戶,首先用以上連接數(shù)據(jù)庫(kù)的方法連接數(shù)據(jù)庫(kù)然后用java語句套接Sql語句方法語句String newsql=insert into icq(nickname,password,info,place) values(?,?,?,?,?,?)來準(zhǔn)備接受用戶的昵稱、密碼、個(gè)人資料、等信息也是準(zhǔn)備為新用戶開辟空間, 當(dāng)用戶將自己填寫好的資料發(fā)送的服務(wù)器時(shí)服務(wù)器通過語句String sql2=select icqno from icq where nickname=?。如果取得客戶端輸入的字符串為”find”則表示用戶申請(qǐng)要查找好友,首先連接數(shù)據(jù)庫(kù),通過String find=select nickname,sex,place,ip,info from icq語句來連接數(shù)據(jù)庫(kù)中icq表并把取得的其他用戶的昵稱,性別,籍貫,是否在線,號(hào)碼等資料返回給申請(qǐng)查詢的客戶端, 如果取得客戶端輸入的字符串為”friend”則表示用戶登陸時(shí)申請(qǐng)讀取其好友資料,同樣連接數(shù)據(jù)庫(kù),通過String friend=select friend from friend where icqno=?語句來查詢其好友號(hào)碼,通過friendinfo=select nickname,icqno,ip,status,pic,info from icq where icqno=?語句來查詢icq表,并把查詢到的資料返回給客戶端。矢量來保存好友號(hào)碼如果取得客戶端輸入的字符串為”addfriend”則表示用戶申請(qǐng)?zhí)砑雍糜?,連接好數(shù)據(jù)庫(kù)后通過int friendicqno=(())語句來查詢要添加對(duì)象的號(hào)碼,然后通過String addfriend=insert into friend values(?,?)語句把接受的用戶號(hào)碼及好友號(hào)碼向好友表添加記錄如果取得客戶端輸入的字符串為”addfriend”則表示用戶申請(qǐng)刪除好友,連接好數(shù)據(jù)庫(kù),通過int friendicqno=(())語句來確認(rèn)用戶好友表中要?jiǎng)h除的好友的號(hào)碼,再用String addfriend=delete from friend where icqno=? and friend=?語句向用戶好友的表中刪除記錄如果取得客戶端輸入的字符串為”logout”則表示用戶申請(qǐng)退出程序,連接數(shù)據(jù)庫(kù),根據(jù)接受的用戶號(hào)碼,將其狀態(tài)字段設(shè)為0,及ip地址設(shè)為空.服務(wù)器端的主要代碼:public class Server{//主服務(wù)器類public static void main(String args[])throws IOException{ServerSocket s=new ServerSocket(8080)。try{ while(true){Socket socket=()。 try{new ServerThread(socket)。} } }finally{()。具體開發(fā)由于代碼太長(zhǎng)不宜在論文中詳述所以本客戶端只對(duì)如何和服務(wù)器端進(jìn)行網(wǎng)絡(luò)連接做比較詳細(xì)的代碼闡述。import .*。import .*。public class New extends JFrame {//登錄窗口類 JPanel contentPane。//服務(wù)器名 int serport。private BufferedReader in。程序界面 …… ……當(dāng)點(diǎn)擊登陸按紐時(shí)代碼的實(shí)現(xiàn) void login_mouseClicked(MouseEvent e) {//登錄按扭 try{Socket socket=new Socket((server),serport)。 PrintWriter out=new PrintWriter(new BufferedWriter( new OutputStreamWriter(())),true)。//告訴服務(wù)器我要登錄(())。 String str= 。//從服務(wù)器讀取消息 //如果失敗就告訴出錯(cuò) if((false)) (this,對(duì)不起,出錯(cuò)了:(,ok,)。 int g=(())。 (true)。 //}while(!(ok))。JDialog d=new Register(server,serport)。(this)。()。 (0)。import .*。import .*。import .*。 (serverport)。//連接服務(wù)器 BufferedReader in=new BufferedReader(new InputStreamReader(()))。(new)。//發(fā)送呢稱等信息(())。(().trim())。//head picindexint no。(no)。 //do{ str=().trim()。 else{//如果成功就告訴用戶其號(hào)碼 (this,your javaicqis+no,ok,)。//并打開主窗口 MainWin f2=new MainWin(no,sername,serverport)。} //(\n)。 // ()。主程序如下所示:Public class MainWin extends JFrame implements Runnable{public MainWin(int s,String sername,int serport) {//主程序構(gòu)造函數(shù) enableEvents()。 server=sername。 jbInit()。 CreatUDP()。(200,150,300,300)。 ()。 } }}(7)消息通信的實(shí)現(xiàn)本系統(tǒng)通信方式是采用數(shù)據(jù)報(bào)服務(wù)實(shí)現(xiàn)的,創(chuàng)建數(shù)據(jù)報(bào)的連接實(shí)現(xiàn)步驟是:首先創(chuàng)建一個(gè)發(fā)送連接,這是一個(gè)數(shù)據(jù)報(bào)式的連接;然后再創(chuàng)建一個(gè)接受連接,當(dāng)然也是一個(gè)數(shù)據(jù)報(bào)式的連接;最后輸入連接的端口信息。 (zhy+sendSocket)。(zhy+()+:+()+,+()+())。}catch(SocketException se){()。}}(1).發(fā)送消息用戶通過在好友列表中找到好友的IP地址,利用UDP協(xié)議與其他用戶進(jìn)行信息交流。若客戶端發(fā)送數(shù)據(jù)報(bào)文包則構(gòu)造函數(shù)創(chuàng)建DategramPacket對(duì)象,將需要發(fā)送的數(shù)據(jù)和包文目的地址信息放入對(duì)象之中。消息發(fā)送是通過調(diào)用DategramSocket對(duì)象的send方法實(shí)現(xiàn)的,它需要以DategramPacket對(duì)象為參數(shù),將剛才封裝進(jìn)DategramPacket對(duì)象中的數(shù)據(jù)組成數(shù)據(jù)報(bào)發(fā)送出去的。 // (s)。 (theip)。 if((null)||()||(0)){(this,:(對(duì)不起,不在線,ok,)。 (sendPacket)。 ()。 }鼠標(biāo)事件相應(yīng)函數(shù)是屬于發(fā)送消息菜單,當(dāng)點(diǎn)擊發(fā)送消息菜單時(shí),執(zhí)行這個(gè)函數(shù),并創(chuàng)建一個(gè)發(fā)送消息的窗口。 (2).監(jiān)聽好友消息首先用run()啟用一線程,再將此線程無限監(jiān)聽好友的消息,無限監(jiān)聽在監(jiān)聽好友消息中定義一個(gè)空數(shù)組,該數(shù)組用于接受消息中的數(shù)據(jù);然后創(chuàng)建數(shù)據(jù)報(bào),(receivePacket)函數(shù)等待并接受數(shù)據(jù)報(bào),用byte[]date=()函數(shù)來取得數(shù)據(jù)報(bào)中的數(shù)據(jù)。 Public int getLength():返回發(fā)送或接受消息的長(zhǎng)度。 Public int getPort():返回發(fā)送或接受數(shù)據(jù)報(bào)的遠(yuǎn)程主機(jī)的端口號(hào)。該對(duì)象利用了DategramPacket類的一種構(gòu)造方式DategramPacket(byte bufferedarray[],int length),這種構(gòu)造方式只需要指明存放接受的數(shù)據(jù)報(bào)的緩沖區(qū)的長(zhǎng)度。receive()方法會(huì)一直阻塞直至受到一個(gè)數(shù)據(jù)報(bào)報(bào)文,而該函數(shù)存放在DategramPacket對(duì)象的緩沖區(qū)中。 參考文獻(xiàn)[1]]Rogers Cadenhead. :人民郵電出版社,2007[2][美]Bruce Eckel. Thinking In :機(jī)械工業(yè)出版社,2007[3] :清華大學(xué)出版社,2006[4] :中國(guó)水利水電出版社,2006[5] :清華大學(xué)出版社,2006[6] ——:西安電子科技大學(xué)出版社,2006[7] :中國(guó)水利水電出版社,2006[8] :清華大學(xué)出版社,2006[9] :清華大學(xué)出版社,2006[10] :冶金工業(yè)出版社,2006[11] :清華大學(xué)出版社,2006[12] :機(jī)械工業(yè)出版社,2006[13] [美]Herbert :清華大學(xué)出版社,2006[14] :機(jī)械工業(yè)出版社,2006[15] :清華大學(xué)出版社,2006[16] :清華大學(xué)出版社,2006[17] :北京郵電大學(xué)出版社,2005[18] :人民郵電出版社,2005[19] [20] 總結(jié)本文討論了如何利用JAVA技術(shù)開發(fā)聊天室系統(tǒng),基本滿足了結(jié)構(gòu)化、界面友好、速度快、安全性以及穩(wěn)定性等特點(diǎn)。在這次的畢業(yè)設(shè)計(jì)中,我應(yīng)用了JAVA開發(fā)工具在WINDOWS平臺(tái)上開發(fā)了一個(gè)基于WINDOWS平臺(tái)的局域網(wǎng)通信工具,在這一重要的領(lǐng)域進(jìn)行了相關(guān)的實(shí)踐,不管是對(duì)我的研究能力,還是實(shí)際動(dòng)手能力,還是資料查閱能力,都起了相當(dāng)大的益處。系統(tǒng)著重研究并實(shí)現(xiàn)了網(wǎng)絡(luò)應(yīng)用的部分。生成的聊天室可以達(dá)到基本的聊天要求,具有較高的研究?jī)r(jià)值。在這里再次感謝我的導(dǎo)師。進(jìn)入社會(huì)后,我以后會(huì)更加努力,是學(xué)校給我學(xué)習(xí)的機(jī)會(huì),在以后的生活中繼續(xù)提高自己,為自己創(chuàng)造更多的機(jī)會(huì),更好的明天! 31
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1