歡迎您的來訪!有源碼,好建站(m.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://m.bmm520.net/info/net/2021/0711/22465.html

      推薦資訊

      亚洲视频在线观看网址| 亚洲国产女人aaa毛片在线| 亚洲第一精品福利| 亚洲午夜av影院| 亚洲av午夜成人片精品电影| 亚洲av日韩综合一区二区三区| 亚洲乱码在线观看| 国产成人亚洲精品| 亚洲人妖女同在线播放| 亚洲色偷偷av男人的天堂| 亚洲嫩模在线观看| 久久久久亚洲AV无码观看| 91情国产l精品国产亚洲区| 久久久久亚洲AV无码专区体验| 亚洲一区二区中文| 中文字幕亚洲综合久久2| 久久久亚洲AV波多野结衣 | 亚洲AV无码欧洲AV无码网站| 亚洲av永久无码精品网站| 亚洲av无码av制服另类专区| 日韩精品亚洲人成在线观看| 亚洲高清在线mv| 亚洲一卡二卡三卡| 中文字幕亚洲男人的天堂网络| 久久亚洲精品国产亚洲老地址| 亚洲老熟女五十路老熟女bbw| 亚洲AV无码XXX麻豆艾秋| 春暖花开亚洲性无区一区二区 | 国产精一品亚洲二区在线播放| 国产精品亚洲片在线| 久久亚洲精品中文字幕无码| 激情内射亚洲一区二区三区| 亚洲国产精品张柏芝在线观看 | 在线精品亚洲一区二区小说| 亚洲视屏在线观看| 亚洲一线产区二线产区精华| 亚洲人成自拍网站在线观看| 国产精品亚洲专一区二区三区| 亚洲无码高清在线观看| 亚洲乳大丰满中文字幕| 亚洲成人中文字幕|