Esta documentación está archivada y no tiene mantenimiento.

Ping.Send (Método) (IPAddress, Int32, Byte[], PingOptions)

Actualización: noviembre 2007

Intenta enviar un mensaje de eco ICMP (Protocolo de mensajes de control de Internet) con el búfer de datos especificado al equipo con la IPAddress especificada y recibir un mensaje de respuesta de eco ICMP de ese equipo. Esta sobrecarga permite especificar un valor de tiempo de espera para la operación y controlar los valores de Período de vida y fragmentación para el paquete del mensaje de eco ICMP.

Espacio de nombres:  System.Net.NetworkInformation
Ensamblado:  System (en System.dll)

public PingReply Send(
	IPAddress address,
	int timeout,
	byte[] buffer,
	PingOptions options
)
public PingReply Send(
	IPAddress address,
	int timeout,
	byte[] buffer,
	PingOptions options
)
public function Send(
	address : IPAddress, 
	timeout : int, 
	buffer : byte[], 
	options : PingOptions
) : PingReply

Parámetros

address
Tipo: System.Net.IPAddress
IPAddress que identifica el equipo de destino para el mensaje de eco ICMP.
timeout
Tipo: System.Int32
Valor Int32 que especifica el número máximo de milisegundos (después de enviar el mensaje de eco) que hay que esperar hasta recibir el mensaje de respuesta de eco ICMP.
buffer
Tipo: System.Byte[]
Matriz de Byte que contiene los datos que se envían con el mensaje de eco ICMP y se devuelven en el mensaje de respuesta de eco ICMP. La matriz no puede contener más de 65.500 bytes.
options
Tipo: System.Net.NetworkInformation.PingOptions
Objeto PingOptions que se usa para controlar los valores de Período de vida y fragmentación del paquete de mensaje de eco ICMP.

Valor devuelto

Tipo: System.Net.NetworkInformation.PingReply
Un objeto PingReply que proporciona información sobre el mensaje de respuesta de eco ICMP, si se recibió alguno, o indica el motivo del error, si no se recibió ningún mensaje. El método devolverá PacketTooBig si el paquete supera la Unidad de transmisión máxima (MTU).

ExcepciónCondición
ArgumentNullException

El valor de address es null.

O bien

El valor de buffer es null, o el tamaño de buffer es superior a 65.500 bytes.

ArgumentOutOfRangeException

El valor de timeout es menor que cero.

InvalidOperationException

Se está realizando una llamada a SendAsync.

NotSupportedException

address es una dirección IPv6 y el equipo local está ejecutando un sistema operativo anterior a Windows 2000.

PingException

Se ha producido una excepción al enviar o recibir los mensajes ICMP. Para conocer la excepción exacta que se produjo, vea la excepción interna.

SocketException

address no es una dirección IP válida.

ObjectDisposedException

Este objeto se ha eliminado.

ArgumentException

El tamaño de buffer es superior a 65.500 bytes.

Si no se recibe el mensaje de respuesta de eco ICMP dentro del intervalo de tiempo especificado por el parámetro timeout, se produce un error en el eco ICMP y la propiedad Status se establece en TimedOut.

ms144955.alert_note(es-es,VS.90).gifNota:

Si se especifican números muy pequeños en timeout, es posible recibir la respuesta Ping aunque hayan transcurrido los milisegundos especificados en timeout.

Si la propiedad DontFragment es true y el tamaño total del paquete supera el tamaño de paquete máximo que puede ser transmitido por uno de los nodos de enrutamiento entre el equipo local y el equipo remoto, se produce un error en el mensaje de solicitud de eco ICMP. Cuando esto sucede, la propiedad Status está establecida en PacketTooBig.

Utilice la propiedad Ttl para especificar el número máximo de veces que se puede reenviar el mensaje de eco ICMP antes de que llegue a su destino. Si el paquete no llega a su destino después de reenviarse el número especificado de veces, se descarta y se produce un error en el mensaje de solicitud de eco ICMP. Cuando esto sucede, la propiedad Status está establecida en TtlExpired.

En el siguiente ejemplo de código se muestra cómo llamar a este método.

public static void ComplexLocalPing ()
{
    // Ping's the local machine.
    Ping pingSender = new Ping ();
    IPAddress address = IPAddress.Loopback;

    // Create a buffer of 32 bytes of data to be transmitted.
    string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    byte[] buffer = Encoding.ASCII.GetBytes (data);

    // Wait 10 seconds for a reply.
    int timeout = 10000;

    // Set options for transmission:
    // The data can go through 64 gateways or routers
    // before it is destroyed, and the data packet
    // cannot be fragmented.
    PingOptions options = new PingOptions (64, true);
    PingReply reply = pingSender.Send (address, timeout, buffer, options);

    if (reply.Status == IPStatus.Success)
    {
        Console.WriteLine ("Address: {0}", reply.Address.ToString ());
        Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
        Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
        Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
        Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
    }
    else
    {
        Console.WriteLine (reply.Status);
    }
}



Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0
Mostrar: