NetworkStream.WriteTimeout Propriedade

Definição

Obtém ou define a quantidade de tempo que uma operação de gravação fica bloqueada aguardando dados.

public override int WriteTimeout { get; set; }

Valor da propriedade

Um Int32 que especifica a quantidade de tempo, em milissegundos, que decorrerá antes da falha de uma operação de gravação. O valor padrão, Infinite, especifica que a operação de gravação não atinge o tempo limite.

Exceções

O valor especificado é menor ou igual a zero e não é Infinite.

Exemplos

O exemplo de código a seguir define o tempo limite de gravação para um fluxo de rede como 10 milissegundos.

using System;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace Examples.System.Net
{
    public class TCPListenerExample
    {
        public static void Main()
        {
            // Create the server side connection and
            // start listening for clients.
            TcpListener tcpListener = new TcpListener(IPAddress.Any,11000);
            tcpListener.Start();
            Console.WriteLine("Waiting for a connection....");

            // Accept the pending client connection.
            using TcpClient tcpClient = tcpListener.AcceptTcpClient();
            Console.WriteLine("Connection accepted.");
            // Get the stream to write the message
            // that will be sent to the client.
            using NetworkStream networkStream = tcpClient.GetStream();
            string responseString = "Hello.";
            // Set the write timeout to 10 millseconds.
            networkStream.WriteTimeout = 10;
            // Convert the message to a byte array and sent it to the client.
            Byte[] sendBytes = Encoding.UTF8.GetBytes(responseString);
            networkStream.Write(sendBytes, 0, sendBytes.Length);
            Console.WriteLine("Message Sent.");
            // Close the connection to the client.
            tcpClient.Close();
            // Stop listening for incoming connections
            // and close the server.
            tcpListener.Stop();
        }
    }
}

Comentários

Se a operação de gravação não for concluída dentro do tempo especificado por essa propriedade, a operação de gravação gerará um IOException.

Nota

Essa propriedade afeta apenas operações de gravação síncronas executadas chamando o Write método . Essa propriedade não afeta gravações assíncronas executadas chamando o BeginWrite método ou WriteAsync .

Aplica-se a

Produto Versões
.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
.NET Framework 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