TcpClient.GetStream Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
NetworkStream Az adatok küldéséhez és fogadásához használt adatokat adja vissza.
public:
System::Net::Sockets::NetworkStream ^ GetStream();
public System.Net.Sockets.NetworkStream GetStream();
member this.GetStream : unit -> System.Net.Sockets.NetworkStream
Public Function GetStream () As NetworkStream
Válaszok
Az alapul szolgáló NetworkStream.
Kivételek
A TcpClient rendszer nem csatlakozik távoli gazdagéphez.
A TcpClient le van zárva.
Példák
Az alábbi példakód a mögöttes GetStreamkód lekérésére szolgálNetworkStream. A beolvasást követően a NetworkStreamrendszer elküldi és fogadja annak és Write metódusainak Read használatával.
using TcpClient tcpClient = new TcpClient();
tcpClient.ConnectAsync("contoso.com", 5000);
using NetworkStream netStream = tcpClient.GetStream();
// Send some data to the peer.
byte[] sendBuffer = Encoding.UTF8.GetBytes("Is anybody there?");
netStream.Write(sendBuffer);
// Receive some data from the peer.
byte[] receiveBuffer = new byte[1024];
int bytesReceived = netStream.Read(receiveBuffer);
string data = Encoding.UTF8.GetString(receiveBuffer.AsSpan(0, bytesReceived));
Console.WriteLine($"This is what the peer sent to you: {data}");
Dim tcpClient As New TcpClient()
' Uses the GetStream public method to return the NetworkStream.
Dim netStream As NetworkStream = tcpClient.GetStream()
If netStream.CanWrite Then
Dim sendBytes As [Byte]() = Encoding.UTF8.GetBytes("Is anybody there?")
netStream.Write(sendBytes, 0, sendBytes.Length)
Else
Console.WriteLine("You cannot write data to this stream.")
tcpClient.Close()
' Closing the tcpClient instance does not close the network stream.
netStream.Close()
Return
End If
If netStream.CanRead Then
' Reads the NetworkStream into a byte buffer.
Dim bytes(tcpClient.ReceiveBufferSize) As Byte
' Read can return anything from 0 to numBytesToRead.
' This method blocks until at least one byte is read.
netStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
' Returns the data received from the host to the console.
Dim returndata As String = Encoding.ASCII.GetString(bytes)
Console.WriteLine(("This is what the host returned to you: " + returndata))
Else
Console.WriteLine("You cannot read data from this stream.")
tcpClient.Close()
' Closing the tcpClient instance does not close the network stream.
netStream.Close()
Return
End If
' Uses the Close public method to close the network stream and socket.
tcpClient.Close()
End Sub
Megjegyzések
A GetStream metódus egy NetworkStream olyan értéket ad vissza, amellyel adatokat küldhet és fogadhat. Az NetworkStream osztály örökli az Stream osztályt, amely a hálózati kommunikáció megkönnyítésére használt módszerek és tulajdonságok gazdag gyűjteményét biztosítja.
Először meg kell hívnia a Connect metódustGetStream, különben a InvalidOperationException metódus egy . A lekérés NetworkStreamután hívja meg a metódust, Write hogy adatokat küldjön a távoli gazdagépnek. Hívja meg a metódust a Read távoli gazdagépről érkező adatok fogadásához. Mindkét metódus blokkolva van a megadott művelet végrehajtásáig. A tulajdonság ellenőrzésével elkerülheti az olvasási műveletek blokkolását DataAvailable . Az true érték azt jelenti, hogy az adatok a távoli gazdagépről érkeztek, és olvasásra elérhetők. Ebben az esetben garantáltan Read azonnal befejeződik. Ha a távoli gazdagép leállítja a kapcsolatot, Read azonnal nulla bájttal tér vissza.
Note
Ha kap egy SocketException, használja SocketException.ErrorCode a megadott hibakód beszerzéséhez. A kód beszerzése után a hiba részletes leírásához tekintse meg a Windows Sockets 2-es verziójának API-hibakódját dokumentációt.
Note
Ez a tag nyomkövetési adatokat ad ki, amikor engedélyezi a hálózati nyomkövetést az alkalmazásban. További információ: Network Tracing a .NET-keretrendszerben.