歡迎您的來訪!有源碼,好建站(www.bmm520.net)源碼海洋源碼網為您提供快速建站平臺.
      當前位置: 首頁 > 行業資訊 > c# .net 資料 >

      C#服務器怎么知道客戶端斷開TCP連接

      時間:2021-07-11 22:58來源:未知 作者:admin 點擊:
      一、使用心跳包 因為: 1、正常情況下 客戶端斷開會產生錯誤,在連接里面能catch到 把套接字操作放到try catch里,如果一端斷開了,另一端還繼續進行套接字操作就會抱錯。你捕捉到就說明另一端完蛋了,進行你要的處理就好了啊 。 2、但是如果客戶端是突然斷

       一、使用心跳包

       
      因為:
              1、正常情況下 客戶端斷開會產生錯誤,在連接里面能catch到
       
                      把套接字操作放到try  catch里,如果一端斷開了,另一端還繼續進行套接字操作就會抱錯。你捕捉到就說明另一端完蛋了,進行你要的處理就好了啊 。
              2、但是如果客戶端是突然斷電等情況下,不會產生這個錯誤 連接會一直等待下去。
       
      你可以用心跳包來解決
       
      1、定義一個與客戶連接相關的Boolean變量 b
      2、客戶端那邊用一個線程 每隔一定時間發送一個無意義的數據包
      3、服務器接收到了就將變量b設置為true
      4、在服務器這邊開啟一個線程心跳包
       
       
          public void 心跳包() 
          { 
              while (b) 
              { 
                  b = false; 
                  Thread.sleep(10000); 
              } //檢測到客戶端掉線 
          }
       
      這樣就可以判斷客戶端掉線,你可以進行處理了
       
       
       
      基于tcp協議的聊天室,里面用到了心跳包的概念,可以利用廣播的形式。時時監測在線用戶的狀態,當用戶下載,離線,客戶端附帶提示發送給服務器,服務器收到信息,廣播給所以在線用戶。當然普通的方式是,服務器不停的監測客戶端的,檢查到異常行為,做異常處理。
       
      (責任編輯:admin)本文地址:http://www.bmm520.net/info/net/2021/0711/22465.html

      推薦資訊

      久久夜色精品国产亚洲av| 小说专区亚洲春色校园| 亚洲天堂男人影院| 亚洲熟女一区二区三区| 亚洲视频在线观看2018| 亚洲酒色1314狠狠做| 国产成人亚洲影院在线观看| 亚洲av中文无码| 亚洲精品天堂成人片AV在线播放 | 亚洲视频在线观看不卡| 亚洲电影一区二区| 亚洲色自偷自拍另类小说| 国产综合精品久久亚洲| 色噜噜亚洲精品中文字幕| 亚洲综合久久夜AV | 国产亚洲一区二区三区在线不卡| 中文亚洲成a人片在线观看| 久久亚洲2019中文字幕| 亚洲一区二区三区无码中文字幕| 国产中文在线亚洲精品官网| 亚洲韩国精品无码一区二区三区| 亚洲伊人久久精品影院| 亚洲精品无码鲁网中文电影| 国产aⅴ无码专区亚洲av| 久久精品九九亚洲精品天堂| 亚洲AV无码一区东京热| 亚洲午夜免费视频| 亚洲国产精品yw在线观看| 亚洲一区在线观看视频| 亚洲色偷精品一区二区三区| 亚洲成a∧人片在线观看无码| 久久无码av亚洲精品色午夜| 亚洲av中文无码| 亚洲人成亚洲人成在线观看 | 亚洲中文精品久久久久久不卡| 亚洲精品无AMM毛片| 亚洲精品成人在线| 日本亚洲欧洲免费天堂午夜看片女人员 | 极品色天使在线婷婷天堂亚洲| 亚洲精品麻豆av| 亚洲日韩精品一区二区三区|