Partilhar via


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:
 virtual property int WriteTimeout { int get(); void set(int value); };
public override int WriteTimeout { get; set; }
member this.WriteTimeout : int with get, set
Public Overrides Property WriteTimeout As Integer

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.

Observação

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