socket聊天室笔记
3-25和26 多線程與服務器------ -------------------------------- 1.委托復習 2.文件流復習 ?真正輸出緩存數據到硬盤的是 Flush()方法.
3.多線程: 命名空間 System.Threading ?多線程的目的: ??1.讓CPU主動執行不同的程序單元,這樣就不至于被 ???? 某個程序的破壞性代碼引起死機癥狀. ??2.理想上能在"同時"做多個事情. 4.線程的Start()方法只是標記該線程可以運行了,具體的運行時間還是由CPU來決定
5.網絡通信socket ?IP與端口號: system.Net ??????? ?套接字socket: system.Net.Sockets;
?IPAddress address=IPAddress.Parse(ip地址): 保存IP地址 ?IPEndPoint endPoint=new IPEndPoint(address,int.parsr(端口號)): 保存網絡節點??????? (ip和port組成) ?socket.Bind(endpoint);將套接字 綁定到對應的端口 ?socket.Listen(10); 為套接字 設置監聽隊列
?socket.Accept();? 接受客戶端發來的請求.----??????? SocketconnectionSocket=socket.Accept(); ?Accept() 方法會阻塞當前的線程,從來實現不斷接收客戶端請求. ??????? 若有連接過來 則返回一個負責與客戶端通信的套接字
?connectionSocket.RemoteEndPoint 發送請求的客戶端的IP與端口信息
??????? 監聽隊列Listen():? 同時能夠處理的請求個數. ????????? 服務器的監聽套接字的Listen(5)方法設置了監聽隊列長度為5,那么 ????????? 當同時有6個客戶端發送連接請求時,那么監聽套接字就會拒絕一個,??????????????????????? 然后讓剩下的5個存儲在隊列中,一個一個為他們闖將服務端的通信套???????????????????????? 接字那么當隊列中有空的位置出現,恰好有新客戶端連接請求發來時 ????????? 那么久直接排入隊列處理兩個數組間的拷貝方法: ??Buffer.BlockCopy(老數組,拷貝索引,新數組,復制索引,復制長度);
轉載于:https://www.cnblogs.com/zxp19880910/archive/2012/09/01/2666280.html
總結
以上是生活随笔為你收集整理的socket聊天室笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javaScript(1):基础部分
- 下一篇: C预编译处理