Ping.Send Methode

Definitie

Hiermee wordt geprobeerd een ICMP-echobericht (Internet Control Message Protocol) naar een externe computer te verzenden en een bijbehorend ICMP-echoantwoordbericht van de externe computer te ontvangen.

Overloads

Name Description
Send(IPAddress)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) te verzenden naar de computer met de opgegeven IPAddresscomputer en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer.

Send(String)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) naar de opgegeven computer te verzenden en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer.

Send(IPAddress, Int32)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer te verzenden naar de computer met de opgegeven IPAddresscomputer en ontvangt u een corresponderend ICMP-echoantwoordbericht van die computer. Met deze methode kunt u een time-outwaarde voor de bewerking opgeven.

Send(String, Int32)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) naar de opgegeven computer te verzenden en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer. Met deze methode kunt u een time-outwaarde voor de bewerking opgeven.

Send(IPAddress, Int32, Byte[])

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer te verzenden naar de computer met de opgegeven IPAddresscomputer en ontvangt u een corresponderend ICMP-echoantwoordbericht van die computer. Met deze overbelasting kunt u een time-outwaarde voor de bewerking opgeven.

Send(String, Int32, Byte[])

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer naar de opgegeven computer te verzenden en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer. Met deze overbelasting kunt u een time-outwaarde voor de bewerking opgeven.

Send(IPAddress, Int32, Byte[], PingOptions)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer te verzenden naar de computer waarop het opgegeven IPAddress en ontvangen van een corresponderend ICMP-echoantwoordbericht van die computer. Met deze overbelasting kunt u een time-outwaarde voor de bewerking opgeven en fragmentatie en Time-to-Live-waarden voor het ICMP-echoberichtpakket opgeven.

Send(String, Int32, Byte[], PingOptions)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer naar de opgegeven computer te verzenden en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer. Met deze overbelasting kunt u een time-outwaarde opgeven voor de bewerking en het beheren van fragmentatie en Time-to-Live-waarden voor het ICMP-pakket.

Opmerkingen

Het IP-adres dat door een van de Send overbelastingen wordt geretourneerd, kan afkomstig zijn van een schadelijke externe computer. Maak hiervoor geen verbinding met de externe computer. Gebruik DNS om het IP-adres te bepalen van de computer waarmee u verbinding wilt maken.

Send(IPAddress)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) te verzenden naar de computer met de opgegeven IPAddresscomputer en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer.

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address);
member this.Send : System.Net.IPAddress -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress) As PingReply

Parameters

address
IPAddress

Een IPAddress die de computer identificeert die de bestemming is voor het ICMP-echobericht.

Retouren

Een PingReply object dat informatie biedt over het ICMP-echoantwoordbericht, als er een is ontvangen of de reden voor de fout beschrijft als er geen bericht is ontvangen.

Uitzonderingen

address is null.

Er wordt een aanroep uitgevoerd SendAsync .

Er is een uitzondering opgetreden tijdens het verzenden of ontvangen van de ICMP-berichten. Zie de interne uitzondering voor de exacte uitzondering die is gegenereerd.

Dit object is verwijderd.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u deze methode aanroept.

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

    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);
    }
}

Opmerkingen

Deze methode verzendt naar de host die is opgegeven door address een gegevensbuffer van 32 Byte met het ICMP-echobericht. De methode wacht vijf seconden voor een ICMP-echoantwoordbericht. Als er op dat moment geen antwoord wordt ontvangen, wordt de methode geretourneerd en wordt de Status eigenschap ingesteld op TimedOut.

Deze overbelasting maakt gebruik van standaardinstellingen voor pakketfragmentatie en het doorsturen van pakketten. Het pakket dat het ICMP-echobericht bevat, kan tijdens de overdracht worden gefragmenteerd als de totale pakketgrootte groter is dan de maximale pakketgrootte die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers. Als u fragmentatie wilt voorkomen, gebruikt u een van de Send methoden die een options parameter gebruiken en stelt u de DontFragment eigenschap in op true. Wanneer DontFragment is true en de totale pakketgrootte de maximale pakketgrootte overschrijdt die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers, mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op PacketTooBig. Het pakket- of pakketfragmenten (indien gefragmenteerd) kunnen 128 keer worden doorgestuurd door routeringsknooppunten voordat ze worden verwijderd. Als u deze instelling wilt wijzigen, gebruikt u een Send overbelasting die een options parameter gebruikt en stelt u de Ttl eigenschap in op de gewenste waarde. Als het pakket de bestemming niet bereikt nadat het opgegeven aantal keren is doorgestuurd, wordt het pakket verwijderd en mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op TtlExpired.

Van toepassing op

Send(String)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) naar de opgegeven computer te verzenden en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer.

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress);
member this.Send : string -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String) As PingReply

Parameters

hostNameOrAddress
String

Een String die de computer identificeert die de bestemming is voor het ICMP-echobericht. De waarde die voor deze parameter is opgegeven, kan een hostnaam of een tekenreeksweergave van een IP-adres zijn.

Retouren

Een PingReply object dat informatie biedt over het ICMP-echoantwoordbericht, als er een is ontvangen of de reden voor de fout biedt, als er geen bericht is ontvangen.

Uitzonderingen

hostNameOrAddress is null of is een lege tekenreeks ("").

Er wordt een aanroep uitgevoerd SendAsync .

Er is een uitzondering opgetreden tijdens het verzenden of ontvangen van de ICMP-berichten. Zie de interne uitzondering voor de exacte uitzondering die is gegenereerd.

Dit object is verwijderd.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u deze methode aanroept.

public static void SimplePing ()
{
    Ping pingSender = new Ping ();
    PingReply reply = pingSender.Send ("www.contoso.com");

    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);
    }
}

Opmerkingen

Met deze methode wordt een gegevensbuffer van 32 Byte verzonden met het ICMP-echobericht. De methode wacht vijf seconden voor een ICMP-echoantwoordbericht. Als er op dat moment geen antwoord wordt ontvangen, wordt de methode geretourneerd en wordt de Status eigenschap ingesteld op TimedOut.

Deze overbelasting maakt gebruik van standaardinstellingen voor pakketfragmentatie en het doorsturen van pakketten. Het pakket dat het ICMP-echobericht bevat, kan tijdens de overdracht worden gefragmenteerd als de totale pakketgrootte groter is dan de maximale pakketgrootte die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers. Als u fragmentatie wilt voorkomen, gebruikt u een van de Send methoden die een options parameter gebruiken en stelt u de DontFragment eigenschap in op true. Wanneer DontFragment is true en de totale pakketgrootte de maximale pakketgrootte overschrijdt die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers, mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op PacketTooBig. Het pakket- of pakketfragmenten (indien gefragmenteerd) kunnen 128 keer worden doorgestuurd door routeringsknooppunten voordat ze worden verwijderd. Als u deze instelling wilt wijzigen, gebruikt u een Send overbelasting die een options parameter gebruikt en stelt u de Ttl eigenschap in op de gewenste waarde. Als het pakket de bestemming niet bereikt nadat het opgegeven aantal keren is doorgestuurd, wordt het pakket verwijderd en mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op TtlExpired.

Van toepassing op

Send(IPAddress, Int32)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer te verzenden naar de computer met de opgegeven IPAddresscomputer en ontvangt u een corresponderend ICMP-echoantwoordbericht van die computer. Met deze methode kunt u een time-outwaarde voor de bewerking opgeven.

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout);
member this.Send : System.Net.IPAddress * int -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer) As PingReply

Parameters

address
IPAddress

Een IPAddress die de computer identificeert die de bestemming is voor het ICMP-echobericht.

timeout
Int32

Een Int32 waarde die het maximum aantal milliseconden aangeeft (nadat het echobericht is verzonden) om te wachten op het ICMP-antwoordbericht.

Retouren

Een PingReply object dat informatie geeft over het ICMP-echoantwoordbericht als er een is ontvangen of de reden voor de fout geeft als er geen bericht is ontvangen.

Uitzonderingen

address is null.

timeout is kleiner dan nul.

Er wordt een aanroep uitgevoerd SendAsync .

Er is een uitzondering opgetreden tijdens het verzenden of ontvangen van de ICMP-berichten. Zie de interne uitzondering voor de exacte uitzondering die is gegenereerd.

Dit object is verwijderd.

Voorbeelden

Zie het Ping klasseoverzicht voor een voorbeeld waarin het aanroepen van een Send methode wordt gedemonstreert.

Opmerkingen

Als het ICMP-echoantwoordbericht niet wordt ontvangen binnen de tijd die is opgegeven in de timeout parameter, mislukt de ICMP-echo en wordt de Status eigenschap ingesteld op TimedOut.

Note

Wanneer u zeer kleine getallen timeoutopgeeft, kan het Ping-antwoord worden ontvangen, zelfs als timeout milliseconden zijn verstreken.

Deze overbelasting maakt gebruik van standaardinstellingen voor pakketfragmentatie en het doorsturen van pakketten. Het pakket dat het ICMP-echobericht bevat, kan tijdens de overdracht worden gefragmenteerd als de totale pakketgrootte groter is dan de maximale pakketgrootte die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers. Als u fragmentatie wilt voorkomen, gebruikt u een van de Send methoden die een options parameter gebruiken en stelt u de DontFragment eigenschap in op true. Wanneer DontFragment is true en de totale pakketgrootte de maximale pakketgrootte overschrijdt die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers, mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op PacketTooBig.

Het pakket of pakketfragmenten kunnen 128 keer worden doorgestuurd door routeringsknooppunten voordat ze worden verwijderd. Als u deze instelling wilt wijzigen, gebruikt u een Send overbelasting die een options parameter gebruikt en stelt u de Ttl eigenschap in op de gewenste waarde. Als het pakket de bestemming niet bereikt nadat het opgegeven aantal keren is doorgestuurd, wordt het pakket verwijderd en mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op TtlExpired.

Van toepassing op

Send(String, Int32)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) naar de opgegeven computer te verzenden en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer. Met deze methode kunt u een time-outwaarde voor de bewerking opgeven.

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout);
member this.Send : string * int -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer) As PingReply

Parameters

hostNameOrAddress
String

Een String die de computer identificeert die de bestemming is voor het ICMP-echobericht. De waarde die voor deze parameter is opgegeven, kan een hostnaam of een tekenreeksweergave van een IP-adres zijn.

timeout
Int32

Een Int32 waarde die het maximum aantal milliseconden aangeeft (nadat het echobericht is verzonden) om te wachten op het ICMP-antwoordbericht.

Retouren

Een PingReply object dat informatie geeft over het ICMP-echoantwoordbericht als er een is ontvangen of de reden voor de fout geeft als er geen bericht is ontvangen.

Uitzonderingen

hostNameOrAddress is null of is een lege tekenreeks ("").

timeout is kleiner dan nul.

Er wordt een aanroep uitgevoerd SendAsync .

Er is een uitzondering opgetreden tijdens het verzenden of ontvangen van de ICMP-berichten. Zie de interne uitzondering voor de exacte uitzondering die is gegenereerd.

Dit object is verwijderd.

Voorbeelden

Zie het Ping klasseoverzicht voor een voorbeeld waarin het aanroepen van een Send methode wordt gedemonstreert.

Opmerkingen

Als het ICMP-echoantwoordbericht niet wordt ontvangen binnen de tijd die is opgegeven in de timeout parameter, mislukt de ICMP-echo en wordt de Status eigenschap ingesteld op TimedOut.

Note

Wanneer u zeer kleine getallen timeoutopgeeft, kan het Ping-antwoord worden ontvangen, zelfs als timeout milliseconden zijn verstreken.

Deze overbelasting maakt gebruik van standaardinstellingen voor pakketfragmentatie en het doorsturen van pakketten. Het pakket dat het ICMP-echobericht bevat, kan tijdens de overdracht worden gefragmenteerd als de totale pakketgrootte groter is dan de maximale pakketgrootte die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers. Als u fragmentatie wilt voorkomen, gebruikt u een van de Send methoden die een options parameter gebruiken en stelt u de DontFragment eigenschap in op true. Wanneer DontFragment is true en de totale pakketgrootte de maximale pakketgrootte overschrijdt die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers, mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op PacketTooBig. Het pakket- of pakketfragmenten (indien gefragmenteerd) kunnen 128 keer worden doorgestuurd door routeringsknooppunten voordat ze worden verwijderd. Als u deze instelling wilt wijzigen, gebruikt u een Send overbelasting die een options parameter gebruikt en stelt u de Ttl eigenschap in op de gewenste waarde. Als het pakket de bestemming niet bereikt nadat het opgegeven aantal keren is doorgestuurd, wordt het pakket verwijderd en mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op TtlExpired.

Van toepassing op

Send(IPAddress, Int32, Byte[])

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer te verzenden naar de computer met de opgegeven IPAddresscomputer en ontvangt u een corresponderend ICMP-echoantwoordbericht van die computer. Met deze overbelasting kunt u een time-outwaarde voor de bewerking opgeven.

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, byte[] buffer);
member this.Send : System.Net.IPAddress * int * byte[] -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer, buffer As Byte()) As PingReply

Parameters

address
IPAddress

Een IPAddress die de computer identificeert die de bestemming is voor het ICMP-echobericht.

timeout
Int32

Een Int32 waarde die het maximum aantal milliseconden aangeeft (nadat het echobericht is verzonden) om te wachten op het ICMP-antwoordbericht.

buffer
Byte[]

Een Byte matrix die gegevens bevat die moeten worden verzonden met het ICMP-echobericht en geretourneerd in het ICMP-antwoordbericht. De matrix mag niet meer dan 65.500 bytes bevatten.

Retouren

Een PingReply object dat informatie biedt over het ICMP-echoantwoordbericht, als er een is ontvangen of de reden voor de fout biedt, als er geen bericht is ontvangen. De methode retourneert PacketTooBig als het pakket de Maximum Transmission Unit (MTU) overschrijdt.

Uitzonderingen

De grootte van buffer meer dan 65500 bytes.

address of buffer is null.

timeout is kleiner dan nul.

Er wordt een aanroep uitgevoerd SendAsync .

Er is een uitzondering opgetreden tijdens het verzenden of ontvangen van de ICMP-berichten. Zie de interne uitzondering voor de exacte uitzondering die is gegenereerd.

Dit object is verwijderd.

.NET 7 en nieuwere versies alleen op Linux: het proces is niet bevoegd en buffer is niet leeg.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u deze methode aanroept.

public static void LocalPingTimeout ()
{
    // 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;
    PingReply reply = pingSender.Send (address, timeout, buffer);

    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);
    }
}

Opmerkingen

Als het ICMP-echoantwoordbericht niet wordt ontvangen binnen de tijd die is opgegeven in de timeout parameter, mislukt de ICMP-echo en wordt de Status eigenschap ingesteld op TimedOut.

Note

Wanneer u zeer kleine getallen timeoutopgeeft, kan het Ping-antwoord worden ontvangen, zelfs als timeout milliseconden zijn verstreken.

Deze overbelasting maakt gebruik van standaardinstellingen voor pakketfragmentatie en het doorsturen van pakketten. Het pakket dat het ICMP-echobericht bevat, kan tijdens de overdracht worden gefragmenteerd als de totale pakketgrootte groter is dan de maximale pakketgrootte die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers. Als u fragmentatie wilt voorkomen, gebruikt u een van de Send methoden die een options parameter gebruiken en stelt u de DontFragment eigenschap in op true. Wanneer DontFragment is true en de totale pakketgrootte de maximale pakketgrootte overschrijdt die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers, mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op PacketTooBig.

Het pakket of pakketfragmenten kunnen 128 keer worden doorgestuurd door routeringsknooppunten voordat ze worden verwijderd. Als u deze instelling wilt wijzigen, gebruikt u een Send overbelasting die een options parameter gebruikt en stelt u de Ttl eigenschap in op de gewenste waarde. Als het pakket de bestemming niet bereikt nadat het opgegeven aantal keren is doorgestuurd, wordt het pakket verwijderd en mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op TtlExpired.

Van toepassing op

Send(String, Int32, Byte[])

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer naar de opgegeven computer te verzenden en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer. Met deze overbelasting kunt u een time-outwaarde voor de bewerking opgeven.

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout, byte[] buffer);
member this.Send : string * int * byte[] -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer, buffer As Byte()) As PingReply

Parameters

hostNameOrAddress
String

Een String die de computer identificeert die de bestemming is voor het ICMP-echobericht. De waarde die voor deze parameter is opgegeven, kan een hostnaam of een tekenreeksweergave van een IP-adres zijn.

timeout
Int32

Een Int32 waarde die het maximum aantal milliseconden aangeeft (nadat het echobericht is verzonden) om te wachten op het ICMP-antwoordbericht.

buffer
Byte[]

Een Byte matrix die gegevens bevat die moeten worden verzonden met het ICMP-echobericht en geretourneerd in het ICMP-antwoordbericht. De matrix mag niet meer dan 65.500 bytes bevatten.

Retouren

Een PingReply object dat informatie geeft over het ICMP-echoantwoordbericht als er een is ontvangen of de reden voor de fout geeft als er geen bericht is ontvangen.

Uitzonderingen

De grootte van buffer meer dan 65500 bytes.

hostNameOrAddress is null of is een lege tekenreeks ("").

– of –

buffer is null.

timeout is kleiner dan nul.

Er wordt een aanroep uitgevoerd SendAsync .

Er is een uitzondering opgetreden tijdens het verzenden of ontvangen van de ICMP-berichten. Zie de interne uitzondering voor de exacte uitzondering die is gegenereerd.

Dit object is verwijderd.

.NET 7 en nieuwere versies alleen op Linux: het proces is niet bevoegd en buffer is niet leeg.

Voorbeelden

Zie het Ping klasoverzicht voor een voorbeeld dat laat zien hoe u een Send overbelasting aanroept.

Opmerkingen

Als het ICMP-echoantwoordbericht niet wordt ontvangen binnen de tijd die is opgegeven in de timeout parameter, mislukt de ICMP-echo en wordt de Status eigenschap ingesteld op TimedOut.

Note

Wanneer u zeer kleine getallen timeoutopgeeft, kan het Ping-antwoord worden ontvangen, zelfs als timeout milliseconden zijn verstreken.

Deze overbelasting maakt gebruik van standaardinstellingen voor pakketfragmentatie en het doorsturen van pakketten. Het pakket dat het ICMP-echobericht bevat, kan tijdens de overdracht worden gefragmenteerd als de totale pakketgrootte groter is dan de maximale pakketgrootte die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers. Als u fragmentatie wilt voorkomen, gebruikt u een van de Send methoden die een options parameter gebruiken en stelt u de DontFragment eigenschap in op true. Wanneer DontFragment is true en de totale pakketgrootte de maximale pakketgrootte overschrijdt die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers, mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op PacketTooBig.

Het pakket of pakketfragmenten kunnen 128 keer worden doorgestuurd door routeringsknooppunten voordat ze worden verwijderd. Als u deze instelling wilt wijzigen, gebruikt u een Send overbelasting die een options parameter gebruikt en stelt u de Ttl eigenschap in op de gewenste waarde. Als het pakket de bestemming niet bereikt nadat het opgegeven aantal keren is doorgestuurd, wordt het pakket verwijderd en mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op TtlExpired.

Van toepassing op

Send(IPAddress, Int32, Byte[], PingOptions)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer te verzenden naar de computer waarop het opgegeven IPAddress en ontvangen van een corresponderend ICMP-echoantwoordbericht van die computer. Met deze overbelasting kunt u een time-outwaarde voor de bewerking opgeven en fragmentatie en Time-to-Live-waarden voor het ICMP-echoberichtpakket opgeven.

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options);
member this.Send : System.Net.IPAddress * int * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer, buffer As Byte(), options As PingOptions) As PingReply

Parameters

address
IPAddress

Een IPAddress die de computer identificeert die de bestemming is voor het ICMP-echobericht.

timeout
Int32

Een Int32 waarde die het maximum aantal milliseconden aangeeft (nadat het echobericht is verzonden) om te wachten op het ICMP-antwoordbericht.

buffer
Byte[]

Een Byte matrix die gegevens bevat die moeten worden verzonden met het ICMP-echobericht en geretourneerd in het ICMP-antwoordbericht. De matrix mag niet meer dan 65.500 bytes bevatten.

options
PingOptions

Een PingOptions object dat wordt gebruikt om fragmentatie en Time-to-Live-waarden voor het ICMP-echoberichtpakket te beheren.

Retouren

Een PingReply object dat informatie biedt over het ICMP-echoantwoordbericht, als er een is ontvangen of de reden voor de fout biedt, als er geen bericht is ontvangen. De methode retourneert PacketTooBig als het pakket de Maximum Transmission Unit (MTU) overschrijdt.

Uitzonderingen

De grootte van buffer meer dan 65500 bytes.

address of buffer is null.

timeout is kleiner dan nul.

Er wordt een aanroep uitgevoerd SendAsync .

Er is een uitzondering opgetreden tijdens het verzenden of ontvangen van de ICMP-berichten. Zie de interne uitzondering voor de exacte uitzondering die is gegenereerd.

Dit object is verwijderd.

.NET 7 en nieuwere versies alleen op Linux: het proces is niet bevoegd en buffer is niet leeg.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u deze methode aanroept.

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);
    }
}

Opmerkingen

Als het ICMP-echoantwoordbericht niet wordt ontvangen binnen de tijd die is opgegeven door de timeout parameter, mislukt de ICMP-echo en wordt de Status eigenschap ingesteld op TimedOut.

Note

Wanneer u zeer kleine getallen timeoutopgeeft, kan het Ping-antwoord worden ontvangen, zelfs als timeout milliseconden zijn verstreken.

Als de DontFragment eigenschap is true en de totale pakketgrootte de maximale pakketgrootte overschrijdt die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers, mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op PacketTooBig.

Gebruik de Ttl eigenschap om het maximum aantal keren op te geven dat het ICMP-echobericht kan worden doorgestuurd voordat het de bestemming bereikt. Als het pakket de bestemming niet bereikt nadat het opgegeven aantal keren is doorgestuurd, wordt het pakket verwijderd en mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op TtlExpired.

Van toepassing op

Send(String, Int32, Byte[], PingOptions)

Hiermee probeert u een ICMP-echobericht (Internet Control Message Protocol) met de opgegeven gegevensbuffer naar de opgegeven computer te verzenden en ontvangt u een bijbehorend ICMP-echoantwoordbericht van die computer. Met deze overbelasting kunt u een time-outwaarde opgeven voor de bewerking en het beheren van fragmentatie en Time-to-Live-waarden voor het ICMP-pakket.

public:
 System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options);
member this.Send : string * int * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), options As PingOptions) As PingReply

Parameters

hostNameOrAddress
String

Een String die de computer identificeert die de bestemming is voor het ICMP-echobericht. De waarde die voor deze parameter is opgegeven, kan een hostnaam of een tekenreeksweergave van een IP-adres zijn.

timeout
Int32

Een Int32 waarde die het maximum aantal milliseconden aangeeft (nadat het echobericht is verzonden) om te wachten op het ICMP-antwoordbericht.

buffer
Byte[]

Een Byte matrix die gegevens bevat die moeten worden verzonden met het ICMP-echobericht en geretourneerd in het ICMP-antwoordbericht. De matrix mag niet meer dan 65.500 bytes bevatten.

options
PingOptions

Een PingOptions object dat wordt gebruikt om fragmentatie en Time-to-Live-waarden voor het ICMP-echoberichtpakket te beheren.

Retouren

Een PingReply object dat informatie geeft over het ICMP-echoantwoordbericht als er een is ontvangen of de reden voor de fout geeft als er geen bericht is ontvangen.

Uitzonderingen

De grootte van buffer meer dan 65500 bytes.

hostNameOrAddress is null of is een tekenreeks met lengte nul.

– of –

buffer is null.

timeout is kleiner dan nul.

Er wordt een aanroep uitgevoerd SendAsync .

Er is een uitzondering opgetreden tijdens het verzenden of ontvangen van de ICMP-berichten. Zie de interne uitzondering voor de exacte uitzondering die is gegenereerd.

Dit object is verwijderd.

.NET 7 en nieuwere versies alleen op Linux: het proces is niet bevoegd en buffer is niet leeg.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u deze methode aanroept.

public static void ComplexPing ()
{
    Ping pingSender = new Ping ();

    // 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);

    // Send the request.
    PingReply reply = pingSender.Send ("www.contoso.com", 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);
    }
}

Opmerkingen

Als het ICMP-echoantwoordbericht niet wordt ontvangen binnen de tijd die is opgegeven door de timeout parameter, mislukt de ICMP-echo en wordt de Status eigenschap ingesteld op TimedOut.

Note

Wanneer u zeer kleine getallen timeoutopgeeft, kan het Ping-antwoord worden ontvangen, zelfs als timeout milliseconden zijn verstreken.

Als de DontFragment eigenschap is true en de totale pakketgrootte de maximale pakketgrootte overschrijdt die kan worden verzonden door een van de routeringsknooppunten tussen de lokale en externe computers, mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op PacketTooBig.

Gebruik de Ttl eigenschap om het maximum aantal keren op te geven dat het ICMP-echobericht kan worden doorgestuurd voordat het de bestemming bereikt. Als het pakket de bestemming niet bereikt nadat het opgegeven aantal keren is doorgestuurd, wordt het pakket verwijderd en mislukt de ICMP-echoaanvraag. Als dit gebeurt, is de Status optie ingesteld op TtlExpired.

Van toepassing op