1. <wbr id="m8vu6"></wbr>

      <del id="m8vu6"><center id="m8vu6"><source id="m8vu6"></source></center></del>
        <p id="m8vu6"><sub id="m8vu6"></sub></p>

        VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 編程開發 > C#編程 >
        • C#教程之C# 網絡連接中異常斷線的處理:ReceiveTim

        • 2019-10-01 21:06 來源:未知

        Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, true);     //必須先啟用接收超時選項,設置接收超時才有用。   

        Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, true);     //必須先啟用發送超時選項,設置發送超時才有用。        

        Socket.ReceiveTimeOut=10000;//毫秒

        Socket.SendTimeOut=10000;//毫秒

        2、對于長連接

        可以通過 Socket 中的心跳檢測機制進行處理.

        Socket的底層IO一般通過 WSAIoctl 函數進行設置. C# 中對此函數進行了封裝, 即Socket.IOControl 方法.

        publicint IOControl(

            IOControlCode ioControlCode,

            byte[] optionInValue,

            byte[] optionOutValue

        )

        其中第一個參數為 Socket IO 控制代碼; 第二個參數為傳入參數值, 第三個參數為傳出值.

        在Winsock 2 中定義了許多 Socket IO 控制類型 , 其中有一項: KeepAliveValues , 控制 TCP keep-alive 數據包的發送以及發送間隔。默認值為2個小時, 當間隔時間超過這個設定后, socket就會連續發送5次連接信號, 若客戶端無回應, 則此 client socket會斷開.

        我們可以如下調整這個間隔時間:

        newClient.Client.IOControl(IOControlCode.KeepAliveValues,BitConverter.GetBytes(120), null); // 設置為 2分鐘.

        以上即為2種網絡異常連接斷線檢測的方法.


        相關教程
        免费看成年人视频大全_免费看成年人视频在线观看