(2)收到UDP信息:
當收到UDP信息時udpRSocket.receive(dp)
-->如果是好友聊天信息("MSG")-->分析發送方的號碼-->從MainFrame.Friend中查找是否是好友,不是則加為陌生人-->取得Friend表中的此人的IcqID,調用IcqID.addInMsg()-->在addInMsg()中-->首先判別是否是第二次收到重復信息(實際應用中可能收到兩次同一條消息),如果重復則不做任何處理.-->是新消息-->設IcqID.newMsg=true,給MainFrame.repaintEvt=true,即讓主窗口重繪.-->向發送者回復一條"UDPOK"的消息-->如果用戶允許自動回復(MainFrame.sysinfo.autoRe==true),剛發送自動回復內容(MainFrame.sysinfo.autoReText)--完成.
-->如果是確認信息("UDPOK")-->取出MainFrame.friend表中發送方的IcqID-->調用IcqID.backID()-->去掉Vector IcqID.outMsg中的已發出內容這條數據(否則IcqID.run()中在檢測到某條信息在超時后仍未收到確認信息,則會自動通過服務器轉發)
(3)發送一條聊天信息:
MainFrame.processMouseEvent()或MainFrame.processKeyEvent()接收到一條發信息的指令后,構造一個SMsg()窗口,等待用戶輸入聊天內容-->接到發送指令-->調用好友的IcqID.sendOut()方法-->在IcqID.sendOut()中-->構造一條發送命令,并截去太長的字符串,為這個信息加上一條ID(以便接收方面軍區別是否重復收到同一信息)-->調用addOutMsg(),向Vector IcqID.outMsg添加發出的消息,以便run()方法檢查確定是否重發-->啟動自已的run()方法-->結束
4.圖形用戶界面:
文章來源于領測軟件測試網 http://www.kjueaiud.com/