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

正文內(nèi)容

基于java局域網(wǎng)聊天程序的設(shè)計與實現(xiàn)(附源代碼)(參考版)

2025-06-21 17:12本頁面
  

【正文】 try { in=new BufferedReader(new InputStreamReader(()))。 = client。 String name,ip。 UserInfo[] userinfo。 PrintWriter out。public class Logon extends Thread{ StateFrame sf。import .*。 } } catch (IOException e) { ()。 Logon ll=new Logon(sf,client,userinfo)。 } catch (IOException e) { ()。 ()。 public CheckIn(StateFrame sf,UserInfo[]userinfo){ =sf。 StateFrame sf。 Socket client。import .*。具體的源碼如下:package javaqq。 } catch (IOException e) { ()。 (as)。 try { file=new FileInputStream(\\sound\\)。 } } catch (IOException e) { ()。 (true)。 (packet)。 } public void run(){ try { while(true){ byte[] Rdata=new byte[256]。 SF = sf。 StateFrame SF。public class Listener extends Thread { MulticastSocket MSocket。import 。import 。import 。 } }4,Listener 用來對群消息的監(jiān)聽及處理。 } } public void processMsg(String str){ (str)。 (as)。 try { file=new FileInputStream(\\sound\\)。 } catch (Exception e1) { ()。 ()。 } ()。 ()。 } catch (Exception e) { try { ()。 ()。 (().getHostAddress())。 (tag)。 ()。 in=new BufferedReader(new InputStreamReader(()))。 } catch (Exception n2) {} } } } } catch (Exception e) { ()。 } } try { removeMsg(usertag)。 k++。 if((usertag)){ k=i。 Connect(check)。 userinfo[i]=new UserInfo(usertag,check)。 //judge為“C”時反送一個含有對方用戶名以及本機的IP的數(shù)據(jù)包到組播組 if((C)){ i=()。 String judge=new String(()).substring(0,1)。 int num=(count)。//等待接受數(shù)據(jù)包 //count記錄了數(shù)據(jù)包的最后一位數(shù),也就是記錄了用戶名的長度。 packet=new DatagramPacket(Rdata,)。 } //實現(xiàn)對組播端口的監(jiān)聽,并作出反映 public void run(){ try { socket=new DatagramSocket()。 } catch (UnknownHostException e) { ()。 = userinfo。 = sf。 public final static int CHECK_PORT=5001。 UserInfo[] userinfo。 BufferedReader in。 String tag。 DatagramPacket packet。 StateFrame sf。public class Catcher extends Thread { MulticastSocket Csocket。import .*。具體的源碼如下:package javaqq。 } public void processFriend(String str){ (str)。 } public void processMsg(String str){ (str)。 } listener=new Listener(socketr,this)。 (group)。 } catch (Exception e) { ()。 Catcher catcher=new Catcher(socketC,this,name,userinfo)。 socketC=new MulticastSocket(CATCH_PORT)。 packet=new DatagramPacket(notify,groupC,CATCH_PORT)。 //發(fā)送一個登錄信息給已登錄的用戶,通知他們本程序上線。 byte nametag[]=new byte[20]。//初始化登錄信息組 socket=new DatagramSocket()。 } //初始化UDP協(xié)議端口信息 //首先向已在線的程序發(fā)送本機的IP以及請求響應(yīng)并對相應(yīng)的組播端進行監(jiān)聽 public void JoinGroup(){ try { group=()。 (false)。 (820, 45, 150, 450)。 } } })。i()。 (new ActionListener(){ public void actionPerformed(ActionEvent e) { (true)。 (allBtn)。 (friList)。 } catch (Exception e1) { ()。 try { socket=new Socket(address,TCP_PORT)。 int s=()。 //(name)。 (labelPanel)。 (nameLabel)。 (pic)。 } } //初始化應(yīng)用程序窗口 public void init(){ setIconImage((new ImageIcon(\\image\\)).getImage())。 } ()。 (packet)。 if(()==){ try { byte[]notice=new String( D+name+().getHostAddress()+()).getBytes()。 TCPListener()。 enableEvents()。 init()。 public StateFrame() { } public StateFrame(String s) { =s。 Socket Csocket。 MulticastSocket socketr。 DatagramPacket packet。 InetAddress group。 public final static int TCP_PORT=6322。 public final static int DEFAULT_PORT=8322。 UserInfo[] userinfo=new UserInfo[50]。 JButton allBtn=new JButton(群聊)。 JLabel stateLabel=new JLabel(在線)。 JLabel pic=new JLabel(icon )。 JPanel labelPanel=new JPanel(new GridLayout(2,1))。 JPanel centerPanel=new JPanel(new GridLayout(1,1))。public class StateFrame extends JFrame { String name=匿名。import .*。import .*。具體的源碼如下:package javaqq。 (0)。 dispose()。 } public void actionPerformed(ActionEvent e) { if(()==loadBtn||()==nameText){ text=()。 (this)。 (this)。 setVisible(true)。 setLocation(387, 234)。 (cancelBtn)。 (panel)。 (autoCheckBox)。 (inputPanel)。 (nameLabel)。 (0, 0, 350, 250)。 JPanel content=(JPanel)()。 setIconImage((new ImageIcon(\\image\\)).getImage())。 public JButton loadBtn=new JButton(登錄)。 private JPanel btnPanel=new JPanel(new FlowLayout())。 private JCheckBox reCheckBox=new JCheckBox(記住用戶名)。 private JTextField nameText=new JTextField(12)。 private JPanel inputPanel=new JPanel()。 private JLabel label=new JLabel(icon)。public class LoadingFrame extends JFrame implements ActionListener{ public String text=null。import .*。具體的源碼如下:package javaqq。 參考文獻[1] 鄭玲,(本科). 北京:清華大學出版社,2007 [2] 王建華,董志敏譯. JAVA核心技術(shù) 卷Ⅱ:高級特性. 北京:機械工業(yè)出版社,2005 [3] 程峰, 卷Ⅰ:基礎(chǔ)知識. 北京:機械工業(yè)出版社,2005[4] (第四版). 北京:清華大學出版社,2002 [5] 姬猛洛,李軍譯. :電子工業(yè)出版社,2002[6] 李建森譯. Java2圖形設(shè)計 卷二:Swing .北京:機械工業(yè)出版社,2000[7] 侯捷譯. Java2 編程思想. 北京:機械工業(yè)出版社,2002[8] . 北京:電子工業(yè)出版社,2007[9] :清華大學出版社,2000[10] 王大鋒. P2P即時通訊軟件監(jiān)控系統(tǒng)的研究與實現(xiàn). 北京:中國科學院研究生院軟件研究所,2005.[11] 徐曉春. Java即時通訊系統(tǒng). 長春:吉林大學,2007 附錄 A 程序源代碼1,LoadingFrame 程序的登錄窗口,從此窗口中,用所得到的用戶名來初始化一個StateFrame,在后期的完善中,會完成記住用戶名及自動登錄功能。由于時間的關(guān)系,我所完成的系統(tǒng)不是很盡善盡美的,還有待修改和完善。從選題、調(diào)查研究、需求分析到查找資料、結(jié)構(gòu)設(shè)計、詳細設(shè)計以及調(diào)試程序,到最后的撰寫論文,我終于設(shè)計出了一個比較完整的、周密的、可使用的以及有一定安全措施的聊天系統(tǒng)。在克服這些困難的過程中,我各個方面的能力有了顯著的提高。在理論課的學習中,我掌握了基礎(chǔ)課和專業(yè)課的理論知識,也曾經(jīng)做過一些軟件設(shè)計和計算機綜合試驗,但真正動手設(shè)計一個C/S模式的聊天軟件,這還是第一次。這次的畢業(yè)設(shè)計讓我受益匪淺。首先,我要感謝學校的胡延忠老師、謝芳老師和趙嵐老師在畢業(yè)設(shè)計期間給了我的幫助,并且給了我許多關(guān)鍵的、建設(shè)性的指導。忙碌而緊張的畢業(yè)設(shè)計就要結(jié)束了。在學習期間,本人還通過網(wǎng)上的各種JAVA源代碼進行學習與研究,我原以為這樣的水平將無法完成畢業(yè)設(shè)計,但當掌握了部分應(yīng)用技巧時,剩下的聊天系統(tǒng)思路的設(shè)計就不是障礙了。在設(shè)計初期,為了畫出一個簡單的圖形,都需要花很長時間去掌握和熟悉。憑著探索新知識的熱情,我選擇了該設(shè)計題目。平時自己也常到其它聊天室進行聊天,自己也曾想過以后學會了軟件編程就一定親自設(shè)計一款聊天軟件。目前本聊天系統(tǒng)還有待完善的功能如下:1. 完成記住密碼及自動登錄功能.2. 完成用戶隱身功能3. 在建立TCP對話之前要征詢對方是否同意建立連接4. 用記事本完成對
點擊復制文檔內(nèi)容
化學相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1