TcpClient.Connected 屬性

取得值,指出 TcpClient 的基礎 Socket 是否已連接至遠端主機。

屬性值

如果最近一次的作業是將 Client 通訊端連接至遠端資源,則為 true,否則為 false

Connected 屬性會取得上次 I/O 作業的 Client 通訊端連接狀態。當它傳回 false 時,即表示 Client 通訊端不是從未連接過,就是不再連接了。

因為 Connected 屬性只反映最近一次作業的連接狀態,所以您應嘗試傳送或接收訊息,以判斷目前的狀態。訊息傳送失敗之後,這個屬性就不再傳回 true。請注意,這種行為是設計上的預期行為。您可能無法很穩定地測試連接的狀態,原因是有可能在測試和收發 (訊息) 之間就失去該連接。您的程式碼應假設該通訊端是連接的,然後再小心處理傳輸失敗的情況。

 

//===========================================================

TcpClient.Available 屬性

取得已從網路接收且可供讀取的資料量。

Available 是判斷資料是否已加入佇列等待讀取的一種方法。 如果資料可用,請呼叫 Read 以取得資料。 可用資料是在網路緩衝區中已加入佇列等候讀取的資料總數。 如果網路緩衝區中沒有資料進入佇列,則 Available 傳回 0。

如果遠端主機關閉連接,則 Available 會擲回 SocketException 如果您收到 SocketException,請使用 SocketException.ErrorCode 取得特定錯誤碼。 取得這個錯誤碼之後,如需錯誤碼的詳細資訊,請參閱 MSDN Library (http://msdn.microsoft.com/zh-tw/library/default.aspx) 中有關<Windows Sockets version 2 API> 內容的文件。

 

//===========================================================

中斷 Tcp 連線

public System.Net.Sockets.TcpClient tcpClient;

            if (this.tcpClient != null)
            {
                this.tcpClient.Client.Shutdown(System.Net.Sockets.SocketShutdown.Both);
                this.tcpClient.Client.Close();
                this.tcpClient.Close();
                this.tcpClient = null;
            }       

//===========================================================

取得client端的ip

 System.Net.IPEndPoint p  = (System.Net.IPEndPoint)tcpClient.Client.RemoteEndPoint;
 string IP = p.Address.ToString();

arrow
arrow
    全站熱搜

    createps 發表在 痞客邦 留言(0) 人氣()