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

正文內(nèi)容

基于net局域網(wǎng)聊天工具設(shè)計畢業(yè)論文-在線瀏覽

2025-05-01 10:03本頁面
  

【正文】 作系統(tǒng) 、 DirectX SDK 以及 .NET ,并安裝了本軟件的正確拷貝。當(dāng) A 機(jī)器和 B 機(jī)器啟動了客戶端軟件后,向服務(wù)器進(jìn)行登錄操作,服務(wù)器端驗證了用戶的登錄后,向局域網(wǎng)廣播客戶端的登錄狀態(tài)。 最后對系統(tǒng)軟件進(jìn)行容錯性測試。容錯性好的軟件能確保系統(tǒng)不發(fā)生無法意料的事故。在后來經(jīng)過不斷的修改和大量的測試,終于將這個 bug 解決了。 套接字異常 在文本聊天模塊測試時,通過在兩個用戶間連續(xù)地連接、斷開,出現(xiàn)Socket 異常,因為 Socket 在使用時,一個 IPEndpoint 只能使用一次,如果本地在使用某個 IPEndpoint,遠(yuǎn)程主機(jī)斷開連接后,本地并沒有釋放此 Socket,當(dāng)遠(yuǎn)程主機(jī)再次嘗試連接此 IPEndpoint時,將出現(xiàn) Socket異常。 網(wǎng)絡(luò)流異常 消息的傳遞離不開網(wǎng)絡(luò)流操作,在編寫文本聊天模塊時,碰到網(wǎng)絡(luò)流異常。 (設(shè)計圖紙) 設(shè)計圖紙 客戶端服務(wù)器界面 圖 11 客戶端功能結(jié)構(gòu) 圖 21 圖 22 文件傳輸接收端程序流程圖 執(zhí)行監(jiān)聽線程 同意接收文件? 否 是 發(fā)送同意接收信號,啟動計時器,接收文件流,反饋狀態(tài) 終止 接收發(fā)送端的文件傳入請求 關(guān)閉計時器,關(guān)閉文件流 將遠(yuǎn)程文件存儲至本地文件 開始 發(fā)送拒絕信號 開啟監(jiān)聽線程,監(jiān)聽端口 開始 開始 開始 發(fā)送拒絕信號 發(fā)送拒絕信號 是 是 是 否 是否斷開連接? 發(fā)送斷開信號,關(guān)閉文本聊天 是 終止 否 連接服務(wù)器 連接服務(wù)器 圖 23 文件傳輸接收 圖 主窗體代碼 using System。 using 。 using 。 using 。 using 。 namespace My { public partial class MainForm : Form { int fromUserId。 int messageImageIndex = 0。 } private void MainForm_Load(object sender, EventArgs e) { = [0]。 (我的好友 )。 ShowFriendList()。 } private void tsbtnPersonalInfo_Click(object sender, EventArgs e) { PersonalInfoForm personalInfoForm = new PersonalInfoForm()。 ()。 ()。 = 。 = ()。 = 。 } private void tsbtnUpdateFriendList_Click(object sender, EventArgs e) { ShowFriendList()。 int messageTypeId = 1。 string sql = ( SELECT Top 1 FromUserId, MessageTypeId, MessageState FROM Messages WHERE ToUserId={0} AND MessageState=0, )。 try { mand = new SqlCommand(sql, )。 SqlDataReader dataReader = ()。 messageTypeId = (int)dataReader[MessageTypeId]。 } ()。 } finally { ()。amp。 ()。 } else if (messageTypeId == 1 amp。 messageState == 0) { sql = SELECT FaceId FROM Users WHERE Id= + 。 ()。 } catch (Exception ex) { ()。 } if (!HasShowUser(fromUserId)) { UpdateStranger(fromUserId)。 ()。 } } private void tmrAddFriend_Tick(object sender, EventArgs e) { messageImageIndex = messageImageIndex == 0 ? 1:0。 } private void tsbtnMessageReading_Click(object sender, EventArgs e) { ()。 = [messageImageIndex]。 ()。 i 2。 j [i].。 } else { [i].Items[j].ImageIndex = 。 } } } } private void cmsFriendList_Opening(object sender, CancelEventArgs e) { if ( == null) { = false。 } if ( != null amp。 == [1]) { = true。 } } private void tsmiView_Click(object sender, EventArgs e) { if ( == ) { = 。 } else if ( == ) { = 。 } } private void tsmiDelete_Click(object sender, EventArgs e) { DialogResult result。 if ( != null) { result = ( 確 實 要 刪 除 該 好 友 嗎 ? , 提示 , , )。 try { SqlCommand mand = new SqlCommand(sql, )。 deleteResult = ()。 } finally { ()。 ()。 ()。 string sql = ( INSERT INTO Friends (HostId, FriendId) VALUES({0},{1}), , ())。 ()。 } catch (Exception ex) { ()。 } if (result == 1) { ( 添加成功! , 提示 , , )。 ShowFriendList()。 } } private void tsbtnExit_Click(object sender, EventArgs e) { DialogResult result = (確實要退出嗎? , 操作確認(rèn) , , )。 } } private void sbFriends_VisibleGroupChanged(SbGroupEventArgs e) { SoundPlayer player = new SoundPlayer()。 } /// summary /// 登錄后顯示個人的信息 /// /summary public void ShowSelfInfo() { string nickName = 。 bool error = false。 try { SqlCommand mand = new SqlCommand(sql, )。 SqlDataReader dataReader = ()。 } faceId = (dataReader[FaceId])。 } catch (Exception ex) { error = true。 } finally { ()。 ()。 = [faceId]。 } } /// summary /// 向我的好友組中添加我的好友列表 /// /summary private void ShowFriendList() {
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1