TcpClient.GetStream Metodo

Definizione

Restituisce il NetworkStream utilizzato per inviare e ricevere dati.

C#
public System.Net.Sockets.NetworkStream GetStream();

Restituisce

Oggetto NetworkStream sottostante.

Eccezioni

Il TcpClient non è connesso a un host remoto.

L'oggetto TcpClient è stato chiuso.

Esempio

Nell'esempio di codice seguente viene GetStream usato per ottenere l'oggetto sottostante NetworkStream. Dopo aver ottenuto , NetworkStreaminvia e riceve usando i Write relativi metodi e Read .

C#
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}");

Commenti

Il GetStream metodo restituisce un oggetto NetworkStream che è possibile usare per inviare e ricevere dati. La NetworkStream classe eredita dalla Stream classe, che fornisce una raccolta completa di metodi e proprietà usate per facilitare le comunicazioni di rete.

È necessario chiamare prima il Connect metodo oppure il GetStream metodo genererà un InvalidOperationExceptionoggetto . Dopo aver ottenuto , chiamare il NetworkStreamWrite metodo per inviare dati all'host remoto. Chiamare il Read metodo per ricevere i dati in arrivo dall'host remoto. Entrambi questi metodi bloccano finché non viene eseguita l'operazione specificata. È possibile evitare di bloccare un'operazione di lettura controllando la DataAvailable proprietà. Un true valore indica che i dati sono arrivati dall'host remoto e sono disponibili per la lettura. In questo caso, Read è garantito il completamento immediato. Se l'host remoto ha arrestato la connessione, Read restituirà immediatamente con zero byte.

Nota

Se si riceve un SocketExceptionoggetto , usare SocketException.ErrorCode per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, è possibile fare riferimento alla documentazione del codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

Vedi anche