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

正文內(nèi)容

基于tcpip協(xié)議的網(wǎng)絡通信應用程序課程設計報告-在線瀏覽

2025-03-10 16:53本頁面
  

【正文】 了使兩個客戶端能相互通信,所有的客戶一律先把聊天信息發(fā)給服務器,并告訴服務器改信息是發(fā)送給哪個客戶的,服務器收到信息后,再將該信息轉(zhuǎn)發(fā)給另外一個客戶。基本方法:表1 TCP連接基本方法TcpListener類基本方法作用Start啟動監(jiān)聽Stop關閉TcpListener并停止監(jiān)聽請求AcceptSocket在同步阻塞方式下獲取并返回一個用來接收和發(fā)送數(shù)據(jù)的Socket對象,同時從傳入的連接隊列中移除該客戶端的連接請求 Socket套接字的運用本設計中自定義了通信程序的可識別命令(見以下第三小點),即自定義的簡單協(xié)議。根據(jù)連接啟動的方式以及本地套接字要連接的目標,套接字之間的連接過程可以分為服務器監(jiān)聽,客戶端請求,連接確認三個步驟。n 客戶端請求:由客戶端的套接字提出連接請求,要連接的目標是服務器的套接字。n 連接確認:當服務器套接字監(jiān)聽到客戶端套接字的連接請求時,它就響應客戶端套接字的請求,把服務器套接字的信息發(fā)給客戶端,一旦客戶端確認了此信息,連接即可建立。服務器和客戶端必須分別進行編程,它們之間的連接如下圖所示。只有建立了聊天室服務器,客戶才能連接到上面,從而進行聊天。窗體用到的主要控件如下表所示。l 可以自主選擇是否輸入端口號端口號是進程的標識,端口號范圍從0到65535。若輸入端口號,程序設置了有效端口號的范圍為1023與65535之間。代碼如下:private void button1_Click(object sender, EventArgs e) { = false。 portParam = 。 textBox1 .AppendText (端口號不合法,默認端口號被接受!)。 textBox1 .AppendText ((服務器IP:{0}\t端口號:{1}\n, _ip, _port))。 ()。 ()。編寫線程監(jiān)聽和線程執(zhí)行體監(jiān)聽來自多個客戶端的請求。ThreadTask方法要點:1) Socket套接字接受連接方法;2) 驗證用戶名是否唯一,若當前哈希表沒有該用戶允許連接,否則連接失敗;3) 調(diào)用線程執(zhí)行體;4) 向所有用戶發(fā)送系統(tǒng)消息,AppendText方法在文本框中追加入系統(tǒng)消息,并用foreach循環(huán)將系統(tǒng)消息傳給各個客戶端。線程執(zhí)行體實際上也是聊天室中服務器端的聊天依據(jù),即我們自定義的協(xié)議解析。圖5 客戶端程序流程圖5) 退出連接編程要點:(1)TCP停止監(jiān)聽; (2)清除在線列表。} //關閉客戶端連接并清理資源 if ( != 0) { foreach (Socket session in ) { ()。 _transmit_tb = null。} 客戶端具體設計 登錄窗體1. 窗體設計圖新建一個Windows窗體,主要用于驗證登錄信息,保證登錄的用戶不重復,端口號和IP地址有效。2) 驗證登錄信息用戶輸入用戶名、服務器IP地址和端口號,若是輸入的IP地址無效,則提示“IP地址不合法”;如果輸入的端口號無法轉(zhuǎn)化為等效的32位有符號整數(shù),或不在102465535之間,則提示“端口號不合法”。3) 向服務器發(fā)出連接請求并向服務器發(fā)送用戶名以確認身份如果客戶端連接不到服務器,則提示“無法連接到服務器,請重試”,不然向服務器發(fā)送用戶名以確認身份,將輸入的用戶名轉(zhuǎn)化為UTF16格式的編碼,寫入NetworkStream,再進行讀取,若是已經(jīng)存在,則提示您的用戶名已經(jīng)被使用,請嘗試其他用戶名!,如果不存在,則獲取當前登錄窗體的文本,并進入聊天界面。 選擇聊天室則進行廣播,選擇悄悄話則進行一對一聊天,點對點地發(fā)送文件。窗體用到的主要控件如表所示。當客戶端連接到服務器后,服務器立刻建立一個數(shù)據(jù)接收的獨立線程。程序流程如下圖。本地信息接收框會顯示聊天狀態(tài)、發(fā)送時間和信息內(nèi)容,其它所有在線用戶會顯示發(fā)送方用戶名、發(fā)送時間和信息內(nèi)容。 sendTxt = ([廣播]{0} 在 {1} 對所有人說:\r\n{2}\r\n\r\n, _username, , msg)。 //_nws是用于發(fā)送和接收信息的網(wǎng)絡流 }2) 一對一私聊選擇進行“悄悄話”,則需要在當前在線用戶在選擇一方進行聊天,沒有選擇用戶則無法進行通信,會有提示“請選擇一個接收者!\n如果沒有接受者可選,表明當前只有您一個人在線”。2. 聊天記錄1) 保存聊天記錄點擊保存聊天記錄,會創(chuàng)建一個SaveFileDialog新實例,另存文件類型設定為*.txt,輸入保存的文件名,就會將當前接收信息文本框的所有內(nèi)容以文本文件保存。 SaveFileDialog sfd = new SaveFileDialog()。 = true。 } }2) 清除聊天記錄點擊清除聊天記錄的按鈕后,出現(xiàn)提示信息“確實消除嗎?消除后不可恢復。 圖8 清除聊天記錄提示窗口3. 文件傳輸l 選擇文件點擊“選擇文件”,進入打開文件對話框,根據(jù)文件類型篩選文件,找到要發(fā)送的文件,點擊確定后,讀取所選文件所在路徑名。如果文件路徑名為空,則提示“請選擇文件傳輸路徑”,否則,根據(jù)路徑名為指定的路徑名初始
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1