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

正文內(nèi)容

基于java的聊天系統(tǒng)的設(shè)計于實現(xiàn)-實驗報告(附源代碼)[實用論文(編輯修改稿)

2024-12-13 08:40 本頁面
 

【文章內(nèi)容簡介】 e)。} }//end get who add me as friend //處理上線結(jié)束 (Echo ing :+str)。 } (Close...)。 }catch(IOException e){}//捕或異常 finally {try{()。} catch(IOException e){} } } } public class Server{//主服務(wù)器類 public static void main(String args[])throws IOException{ ServerSocket s=new ServerSocket(8080)。//在 8080 端口創(chuàng)建套接口 (Server start..+s)。 try{ while(true){Socket socket=()。//無限監(jiān)聽客戶的請求 (Connectino accept:+socket)。 try{new ServerThread(socket)。//創(chuàng)建新線程 }catch(IOException e){()。} } }finally{()。}//捕或異常 } }//服務(wù)器程序結(jié)束 2. 客戶程序如下(部分) 客戶通過 Socket(IAddress,port)建立與服務(wù)器的連接。 服務(wù)器與客戶都通過構(gòu)造 BufferedReader,PrintWriter 來建立輸入輸出流,然后雙方通過該輸入輸出流來相互傳遞信息,一旦收到客戶方的連接請求,服務(wù)器 accept()方法返回一個新建的 Socket 對象。客戶端然后向服務(wù)器發(fā)送消息,比如注冊,登錄,查找好友等,服務(wù)器收到來自客戶的請求后,針對不同的消息處理請求 , 雖然 UDP 不可靠但是對于 icq 可靠性并不太重要,而且 UDP 快速,所以客戶間發(fā)送信息通過 UDP。用戶登錄時通過類 DatagramPacket 和 DatagramSocket 創(chuàng)建 UDP 包括其本 地接受端口以及發(fā)送端口,默認端口為 5000 和 5001,通過取得的好友的 IP地址來向好友發(fā)送消息( send(DatagramPacket)和接受消息(receive(DatagramPacket))。當用戶通過 UDP 收到消息后,可以通過DatagramPacket 的方法 IAddress getAddress()得到對方的 ip 地址,通過對好友列表比較以判斷是誰并提示用戶收到某某的消息,然后用戶選擇該用戶查看消息,如果好友列表沒有該人就顯示收到陌生人的消息。用戶可以按陌生人按鈕查看消息。 1. 用戶注冊。當服務(wù)器 收到用戶的注冊請求,便開始接受客戶傳第的信息,諸如客戶的呢稱啦,性別,籍貫,頭像,個人資料等,接受完畢后,便通過 JdbcOdbc 與后臺數(shù)據(jù)庫連接,然后向數(shù)據(jù)庫添加記錄,如果成功,便向客戶返回其 Jicq 號碼,并在數(shù)據(jù)庫中注冊用戶的 IP地址,然后更新其Status 為 1 即用戶在線。客戶收到服務(wù)器返回的信息后,便打開主程序窗口,并同時開始創(chuàng)建 UDP 以便在用戶之間建立聯(lián)系。 ******部分程序如下: void jButton1_mouseClicked(MouseEvent e) { try{ Socket socket=new Socket((sername),serverport)。//連接服務(wù)器 BufferedReader in=new BufferedReader(new InputStreamReader(()))。 PrintWriter out=new PrintWriter(new BufferedWriter( new OutputStreamWriter(())),true)。 (new)。//告訴服務(wù)器我要注冊 (().trim())。//告訴服務(wù)器我的呢稱,密碼,,資料 (())。//以及頭像號等信息 (().trim())。 (().trim())。 (())。 (())。//head picindex int no。 no=(())。 //(no)。 String str= ; str=().trim()。//從服 務(wù)器取得狀態(tài) if((false)) (this,對不起,出錯了 : (,ok,)。//失敗就警告 else{//成功就打開主程序 (this,your javaicqis+no,ok,)。 ()。 MainWin f2=new MainWin(no,sername,serverport)。 (true)。} //(\n)。 //}while(!(ok))。 // ()。 }catch(IOException e1){} } } 2. 用戶登錄。在客戶端,用戶輸入其 jicq 號碼和密碼,然后建立與服務(wù)器的連接,告訴服務(wù)器我要登錄,服務(wù)器收到后,開始通過 JdbcOdbc 讀取數(shù)據(jù)庫,然后與用戶輸入的信息比較,如果相同就向客戶返回成功消息并將其 Status 字段設(shè)為1表示上線了以及注冊其 IP地址,否則返回錯誤,如果客戶收到成功信息就打開主窗口,否則提示出錯。如果成功,便打開主程序窗口,并同時開始創(chuàng)建 UDP 以便在用戶之間建立聯(lián)系。然后客戶向服務(wù)器請求讀取好友名單,服務(wù)器收到該請求,開始讀取數(shù)據(jù)庫中的friend 表,得到好友的號碼后,再在 icq 表中讀取 好友資料,然后向客戶端發(fā)送這些信息,客戶收到后就在主窗口顯示好友,比如頭像,呢稱。并且建立幾個矢量( Vector)用以存儲好友的呢稱, jicq 號碼,頭像編號,ip 地址等信息。 部分程序如下: (程序流程圖與注冊差不多 ,略 ) void login_mouseClicked(MouseEvent e) { try{Socket socket=new Socket((server),serport)。//與服務(wù)器連接 BufferedReader in=new BufferedReader(new InputStreamReader(()))。//創(chuàng)建 //輸入流 PrintWriter out=new PrintWriter(new BufferedWriter( new OutputStreamWriter(())),true)。 //創(chuàng)建輸出流 (login)。//告訴服務(wù)器我要登錄 (())。 //告訴服務(wù)器我的號碼 (())。 //告訴服務(wù)器我的密碼 String str= 。 //do{ str=().trim()。//取得服務(wù)器發(fā)過來的消息 if((false)) (this,對不起,出 錯了 :(,ok,)。//失敗 else{ ()。 int g=(())。 MainWin f2=new MainWin(g,server,serport)。//如果成功就打開主程序 (true)。 } //(\n)。 //}while(!(ok))。 }catch(IOException e1){} } 3. 用戶添加好友??蛻舻卿浐?,按查找按鈕后,開始向服務(wù)器發(fā)出查找請求,服務(wù)器讀取數(shù)據(jù)庫表 icq 并向客戶返回其結(jié)果,客戶收到后在查找窗口中顯示,如果用戶選擇了一個好友,就向服務(wù)器發(fā)送添加好友請求,服務(wù)器收到后就向數(shù)據(jù)庫表 friend 中添加自己的號碼以及好友的號碼,并從 icq表中讀取其基本信息返回給客戶端,然后客 戶收到并在主窗口顯示該好友。并且通過 UDP 通知該客戶,對方收到該消息后,可以選擇添加該用戶為好友或者不。 (程序流程圖與程序略 ,參看源程序 ) 4. 用戶刪除好友。用戶在其好友列表中選擇要刪除的好友并按刪除,然后向服務(wù)器發(fā)送刪除請求,服務(wù)器收到該請求后,連接數(shù)據(jù)庫表 friend 刪除用戶及該好友的記錄,如果成功就向客戶返回成功消息,客戶收到后在其好友列表中刪除該好友。 (程序流程圖與程序略 ,參看源程序 ) 5. 用戶發(fā)送和接收消息 .用戶通過在好友列表里的好友的 ip 地址 ,通過 UDP與其他用戶進行信息交流 , (程序流程圖與程序略 ,參看源程序 源代碼文件夾 )及部分程序運行結(jié)果界面圖 picture 文件夾 三.程序界面 程序界面主要參考騰迅公司的 2020,在實現(xiàn)時采用的 Java 的 Swing 圖形包。開發(fā)工具用的是 JCreater。 四.程序的使用 源程序參見 源代碼 文件夾 部分程序運行結(jié)果界面圖 picture 文件夾 1. 服務(wù)器端:( Windows 平臺)首先應(yīng)有 java 環(huán)境 jdk,建議采用 。然后安裝SQL 數(shù)據(jù)庫,建立數(shù)據(jù)庫 javaicq,并且建立表 icq 和表 friend。然后在控制面板中的 ODBC數(shù)據(jù)源中設(shè)置用戶 DSN數(shù)據(jù)源 javaicq和文件 DSN數(shù)據(jù)源 javaicq建立與數(shù)據(jù)庫的連接。然后運行 javac ,java Server 及可。 2. 客戶端:只要有有 java環(huán)境 jdk就可以建議 。然后運 行 javac ,java New 及可。 五.參考文獻: ? Java2圖形設(shè)計 卷二: Swing (美 ) David ? Java2 編程思想 (美 ) Bruce Eckel ? JAVA 網(wǎng)絡(luò)編程(第一卷) (美 ) Stevens ? Java 語言與面向?qū)ο蟪绦蛟O(shè)計(清華大學(xué)出版)印雯 編著 王沖海 () 2020 年 5 月 運行時,用戶登錄端: import .*。 import .*。 import .*。 import .*。 import .*。 public class New extends JFrame {//登錄窗口類 JPanel contentPane。 //***************** String server。//服務(wù)器名 int serport。//端口 private Socket socket。 private BufferedReader in。//輸入輸出流 private PrintWriter out。 //***********//程序界面 JPanel jPanel1 = new JPanel()。 JLabel jLabel1 = new JLabel()。 JLabel jLabel2 = new JLabel()。 JTextField jicq = new JTextField()。 JLabel jLabel3 = new JLabel()。 JPasswordField password = new JPasswordField()。 JPanel jPanel2 = new JPanel()。 JButton login = new JButton()。 JButton newuser = new JButton()。 JButton quit = new JButton()。 JLabel jLabel6 = new JLabel()。 JTextField servername = new JTextField()。 JLabel jLabel7 = new JLabel()。 JTextField serverport = new JTextField()。 public New() { enableEvents()。 try { jbInit()。 server=().toString().trim()。 serport=(().trim())。 } catch(Exception e) { ()。 }
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1