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

正文內(nèi)容

基于tcp協(xié)議的簡單即時通信軟件的設計與實現(xiàn)(參考版)

2025-06-03 12:00本頁面
  

【正文】 在此向他表示我最衷心的感謝!在論文完成過程中,本人還得到了其他老師和毛磊同學的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!。[7] 王躍. INTERNET上大規(guī)模用戶即時通信方法研究[D].北京:北京工業(yè)大學[碩士論文],2004。[5] 方睿,吳四九,刁仁宏. 網(wǎng)絡數(shù)據(jù)庫原理及應用[M].四川:四川大學出版社,2005。[3] Andrew Krowczyk, vinod Kumar. .NET網(wǎng)絡高級編程[M].北京:清華大學出版社,2003。第 27 頁 共 28 頁參考文獻[1] Tobin. Titus, Fabio Claudio Ferracchiati. C線程參考手冊[M].:清華大學出版社,2003。在本次設計中,我深刻體會到SOCKET編程的基礎性,多樣化。結(jié) 論即時通信是是網(wǎng)絡發(fā)展的必然趨勢,它的技術(shù)仍然在不斷的改進和蓬勃發(fā)展中。//將文件流中讀取字節(jié)塊寫入相應緩沖區(qū) (im)。//根據(jù)傳入的參數(shù)打開文件 byte[] im = new byte[]。using 。//接收到了數(shù)據(jù) WaitForData()。 byteCount = (ar)。 } private void OnDataRecieved(IAsyncResult ar) { // 垃圾回收 ()。 } public void Disconnect()//關閉連接 { if () ()。 } } public void Send(byte[] data) { (data)。//ClientInfo包含了建立的套接字和套接字讀取的BYTE大小_dataRecievedCallback = new AsyncCallback(OnDataRecieved)。 _mainSoc = new Socket( , , )。//定義一個事件:接收到數(shù)據(jù)時引發(fā)事件 public ClientBase(string serverIP,int port) { _serverIP = serverIP。 private AsyncCallback _dataRecievedCallback。 private Socket _mainSoc。 private int _port。using 。核心代碼如下::這個類實現(xiàn)了套接字的開啟和數(shù)據(jù)的傳輸using System。由于文件傳輸?shù)拇a實現(xiàn)復雜,通過類庫可以大量的簡化代碼,使主程序簡潔易懂。這里也不再闡述代碼。 } else {(())。 =false。//打開新線程 (+登錄成功!)。 }CSERVER是一個用于開啟監(jiān)聽P2P信息的方法,客戶端在登錄成功以后就會立刻開啟監(jiān)聽器,才能夠?qū)崿F(xiàn)與其它客戶端的聊天: th = new Thread(new ThreadStart(CServer))。 ListViewItem item = new ListViewItem(ems)。 ems[3]=ff[i].IP。 ems[1]=ff[i].nickname。i++) { string[] ems=new string[5]。 for(int i=0。 int xxx=。,39。 string _fg=。 UMessage bumessage = (UMessage)(new MemoryStream(chat))。 byte[] chat = new byte[rect]。 }以下代碼讀取了服務器返回給客戶端的信息(注冊和登錄的成功與失?。?,如果返回了登錄成功的信息,還會讀取服務器給出的FriendStruct結(jié)構(gòu)以得到用戶的好友信息: region 接收反饋信息 byte[] data = new byte[2048]。 int i = (d, 0, , )。 (0, )。 (s,_message)。 ((EndPoint)ServerIPEP)。 客戶端聊天信息好友詳細信息列表圖5 注冊界面圖6 登錄、聊天、文件傳輸界面 同步套接字客戶端客戶端發(fā)起同步套接字連接,并傳送登錄或者注冊信息,由于兩者方式類似,這里僅列出用戶登錄的代碼: region 發(fā)送服務器登錄信息,并接收服務器反饋信息 public void Client() {建立SOCKET發(fā)送信息: try { IPEndPoint ServerIPEP = new IPEndPoint((),8888)。 = true。 += new ElapsedEventHandler(CheckStatus)。//打開新線程不僅僅是服務器,基于P2P模式聊天的客戶端也必須支持多線程運行,實現(xiàn)代碼與之類似,在客戶端設計說明中將不再敘述。本設計實現(xiàn)代碼如下: = new Thread(new ThreadStart(Serve))。 多線程對于服務器來說,多線程是必不可少的,否則它將無法處理不斷請求的新連接。 } catch (Exception ex) { ()。 (d)。 (0, )。 (ms, umessage)。 Socket sc = (Socket)alSock[(uc, 0)]。 endregion } else { ()。 (d)。 (0, )。 (ms, umessage)。 = ff。 ((uc).ToString())。 region 此處寫入登錄成功代碼 Stream ms = new MemoryStream()。 i++。 ff[i].status = getf[UserOnline].ToString()。 ff[i].IP = getf[UserIP].ToString()。 and =, )。 SqlDataReader getf = (select * from TCP_UserInfo join TCP_FriendInfo on =39。 ff=new Friend[xxx]。 + Accounts + 39。 + ((IPEndPoint)).() + 39。 int xxx=[find].。 DataSet ds = new DataSet()。 + uid + 39。 ()。 if (usdr != null) { if (()) { string uid=usdr[UserID].ToString()。+Password+39。 + Accounts + 39。 string Password = 。 } endregion } ()。 (d, 0, )。 byte[] d = new byte[]。 } else { = 2。 (d, 0, )。 byte[] d = new byte[]。), ) == null) { = 1。,39。,39。,39。,39。,39。 if ((insert into TCP_UserInfo (UserAccount,UserNickname,UserEmail,JoinDate,UserIP,UserPassword) values(39。 endregion } else { region 此處寫入插入數(shù)據(jù)庫用戶注冊信息的代碼 Stream ms = new MemoryStream()。 if (usdr != null) { if (())
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1