歡迎您的來訪!有源碼,好建站(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

      推薦資訊

      亚洲专区在线视频| 在线亚洲高清揄拍自拍一品区| 亚洲欧洲综合在线| 久久亚洲一区二区| 亚洲va无码手机在线电影| 久久亚洲精品成人AV| 亚洲精品无码mv在线观看网站| 亚洲AV无码无限在线观看不卡| 亚洲三级在线免费观看| 亚洲一区二区三区影院| 亚洲av成人无码网站…| 日韩欧美亚洲国产精品字幕久久久| 亚洲国产高清国产拍精品| 亚洲成aⅴ人片久青草影院按摩| 亚洲成aⅴ人片久青草影院按摩| 噜噜综合亚洲AV中文无码| 国产成人高清亚洲一区91| 国产亚洲蜜芽精品久久| 亚洲?V无码乱码国产精品| 亚洲国产精品尤物yw在线 | 91亚洲国产成人久久精品网址| 亚洲午夜久久久影院伊人| 亚洲宅男天堂在线观看无病毒| 在线观看亚洲精品福利片| 亚洲精品色午夜无码专区日韩| 久久精品亚洲日本佐佐木明希| 亚洲国产综合91精品麻豆| 亚洲视频在线观看不卡| 亚洲1234区乱码| 亚洲成a人片在线观看天堂无码 | 亚洲综合伊人久久综合| 久久久久亚洲AV成人无码| 亚洲精品国产成人中文| 中文字幕亚洲男人的天堂网络| 亚洲欧美国产欧美色欲| 亚洲精品无码久久不卡| 亚洲精品无码mv在线观看网站 | 久久精品国产亚洲AV电影| 亚洲一区二区久久| 99亚洲乱人伦aⅴ精品| 综合亚洲伊人午夜网|