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

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

      時間:2021-07-11 22:58來源:未知 作者:admin 點擊:151次
      一、使用心跳包 因為: 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

      推薦資訊

      国产亚洲一区二区手机在线观看| 亚洲综合一区国产精品| 一本色道久久综合亚洲精品蜜桃冫| 久久国产亚洲高清观看| 亚洲AV无码一区东京热| 亚洲国产另类久久久精品小说| 国产亚洲精品一品区99热| 国产亚洲精品AA片在线观看不加载| 亚洲精品tv久久久久久久久久| 亚洲精品99久久久久中文字幕| 亚洲国产精品狼友中文久久久| 亚洲精品和日本精品| 亚洲午夜日韩高清一区| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 亚洲久热无码av中文字幕| 亚洲一区二区三区写真| 亚洲人成欧美中文字幕| 亚洲精品一卡2卡3卡四卡乱码| 亚洲国产成人久久精品软件| 337p日本欧洲亚洲大胆人人| 亚洲不卡无码av中文字幕| 亚洲伊人久久综合中文成人网| 亚洲精品97久久中文字幕无码| 国产亚洲大尺度无码无码专线| 亚洲精品无码MV在线观看| 亚洲AV成人无码久久精品老人| 精品日韩亚洲AV无码一区二区三区| 亚洲国产综合精品| 一本色道久久综合亚洲精品蜜桃冫| 亚洲Av无码国产一区二区| 亚洲第一黄色网址| 久久亚洲国产午夜精品理论片| 亚洲三级电影网站| 亚洲人成伊人成综合网久久| 最新亚洲春色Av无码专区| 丰满亚洲大尺度无码无码专线| 国产乱辈通伦影片在线播放亚洲| 日韩亚洲欧洲在线com91tv| 91在线精品亚洲一区二区| avtt天堂网手机版亚洲| 亚洲6080yy久久无码产自国产 |