Ping.SendAsync Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Zaman uyumsuz olarak bir bilgisayara İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan karşılık gelen bir ICMP yankı yanıt iletisi alır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| SendAsync(String, Int32, Byte[], PingOptions, Object) |
Zaman uyumsuz olarak, belirtilen bilgisayara belirtilen veri arabelleğiyle bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan ilgili ICMP yankı yanıtı iletisini alır. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize ve ICMP paketi için parçalanma ve Yaşam Süresi değerlerini denetlemenize olanak tanır. |
| SendAsync(IPAddress, Int32, Byte[], PingOptions, Object) |
Zaman uyumsuz olarak, belirtilen veri arabelleğine sahip IPAddressbir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeyi ve ilgili ICMP yankı yanıt iletisini bu bilgisayardan almayı dener. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize ve ICMP yankı ileti paketi için parçalanma ve Yaşam Süresi değerlerini denetlemenize olanak tanır. |
| SendAsync(String, Int32, Byte[], Object) |
Zaman uyumsuz olarak, belirtilen bilgisayara belirtilen veri arabelleğiyle bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan ilgili ICMP yankı yanıtı iletisini alır. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize olanak tanır. |
| SendAsync(IPAddress, Int32, Byte[], Object) |
Zaman uyumsuz olarak, belirtilen veri arabelleğine sahip IPAddressbir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeyi ve ilgili ICMP yankı yanıt iletisini bu bilgisayardan almayı dener. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize olanak tanır. |
| SendAsync(IPAddress, Int32, Object) |
Belirtilen IPAddressdeğerine sahip bilgisayara zaman uyumsuz olarak bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan ilgili ICMP yankı yanıt iletisini alır. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize olanak tanır. |
| SendAsync(String, Object) |
Belirtilen bilgisayara zaman uyumsuz olarak bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan karşılık gelen bir ICMP yankı yanıt iletisi alır. |
| SendAsync(IPAddress, Object) |
Belirtilen IPAddressdeğerine sahip bilgisayara zaman uyumsuz olarak bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan ilgili ICMP yankı yanıt iletisini alır. |
| SendAsync(String, Int32, Object) |
Belirtilen bilgisayara zaman uyumsuz olarak bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan karşılık gelen bir ICMP yankı yanıt iletisi alır. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize olanak tanır. |
Açıklamalar
Bu yöntemler uygulamanızın ana iş parçacığının engellenmesine neden olmaz. ICMP yankı yanıt iletisini beklerken engellemek istiyorsanız yöntemlerini kullanın Send .
Uyarı
Yöntemlerden herhangi biri SendAsync tarafından döndürülen IP adresi kötü amaçlı bir uzak bilgisayardan kaynaklanabilir. Bunu kullanarak uzak bilgisayara bağlanmayın. Bağlanmak istediğiniz makinenin IP adresini belirlemek için DNS kullanın.
SendAsync(String, Int32, Byte[], PingOptions, Object)
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
Zaman uyumsuz olarak, belirtilen bilgisayara belirtilen veri arabelleğiyle bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan ilgili ICMP yankı yanıtı iletisini alır. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize ve ICMP paketi için parçalanma ve Yaşam Süresi değerlerini denetlemenize olanak tanır.
public:
void SendAsync(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options, object? userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken);
member this.SendAsync : string * int * byte[] * System.Net.NetworkInformation.PingOptions * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), options As PingOptions, userToken As Object)
Parametreler
- hostNameOrAddress
- String
String ICMP yankı iletisinin hedefi olan bilgisayarı tanımlayan. Bu parametre için belirtilen değer bir ana bilgisayar adı veya IP adresinin dize gösterimi olabilir.
- timeout
- Int32
Int32 ICMP yankı yanıt iletisini beklemek için milisaniye (yankı iletisini gönderdikten sonra) maksimum sayısını belirten bir değer.
- buffer
- Byte[]
Byte ICMP yankı iletisiyle gönderilecek verileri içeren ve ICMP yankı yanıt iletisinde döndürülen bir dizi. Dizi 65.500 bayttan fazla içeremez.
- options
- PingOptions
PingOptions ICMP yankı ileti paketi için parçalanma ve Yaşam Süresi değerlerini denetlemek için kullanılan nesne.
- userToken
- Object
Zaman uyumsuz işlem tamamlandığında çağrılan yöntemine geçirilen nesne.
Özel durumlar
hostNameOrAddress veya null boş bir dizedir ("").
-veya-
buffer, null'e eşittir.
timeout, sıfırdan küçüktür.
çağrısı SendAsync devam ediyor.
ICMP iletileri gönderilirken veya alınırken bir özel durum oluştu. Oluşan tam özel durum için iç özel duruma bakın.
hostNameOrAddress geçerli bir IP adresine çözümlenemedi.
Bu nesne atılmış.
Boyutu buffer 65500 baytı aşıyor.
Yalnızca Linux üzerinde .NET 7 ve sonraki sürümleri: İşlem ayrıcalıklı değildir ve buffer boş değildir.
Örnekler
Aşağıdaki kod örneği, bu yöntemin nasıl çağrılduğunu gösterir.
using System;
using System.Text;
using System.Net;
using System.Net.NetworkInformation;
using System.ComponentModel;
using System.Threading;
namespace Examples.System.Net.NetworkInformation.PingTest
{
public class PingExample
{
public static void Main (string[] args)
{
if (args.Length == 0)
throw new ArgumentException ("Ping needs a host or IP Address.");
string who = args[0];
AutoResetEvent waiter = new AutoResetEvent (false);
Ping pingSender = new Ping ();
// When the PingCompleted event is raised,
// the PingCompletedCallback method is called.
pingSender.PingCompleted += new PingCompletedEventHandler (PingCompletedCallback);
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes (data);
// Wait 12 seconds for a reply.
int timeout = 12000;
// 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);
Console.WriteLine ("Time to live: {0}", options.Ttl);
Console.WriteLine ("Don't fragment: {0}", options.DontFragment);
// Send the ping asynchronously.
// Use the waiter as the user token.
// When the callback completes, it can wake up this thread.
pingSender.SendAsync(who, timeout, buffer, options, waiter);
// Prevent this example application from ending.
// A real application should do something useful
// when possible.
waiter.WaitOne ();
Console.WriteLine ("Ping example completed.");
}
private static void PingCompletedCallback (object sender, PingCompletedEventArgs e)
{
// If the operation was canceled, display a message to the user.
if (e.Cancelled)
{
Console.WriteLine ("Ping canceled.");
// Let the main thread resume.
// UserToken is the AutoResetEvent object that the main thread
// is waiting for.
((AutoResetEvent)e.UserState).Set ();
}
// If an error occurred, display the exception to the user.
if (e.Error != null)
{
Console.WriteLine ("Ping failed:");
Console.WriteLine (e.Error.ToString ());
// Let the main thread resume.
((AutoResetEvent)e.UserState).Set();
}
PingReply reply = e.Reply;
DisplayReply (reply);
// Let the main thread resume.
((AutoResetEvent)e.UserState).Set();
}
public static void DisplayReply (PingReply reply)
{
if (reply == null)
return;
Console.WriteLine ("ping status: {0}", reply.Status);
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);
}
}
}
}
Açıklamalar
SendAsync yöntemi Echo iletisini zaman uyumsuz olarak gönderir ve işlem tamamlandığında (başarıyla veya başarısız olduğunda), durumunu uygulamanıza döndürür. Uygulamanızın SendAsync engellememesi gerektiğinde yöntemini çağırın. Her çağrı, iş parçacığı havuzundan otomatik olarak ayrılan ayrı bir iş parçacığında yürütülür. Zaman uyumsuz işlem tamamlandığında olayı tetikler PingCompleted . Uygulamalar, olayı tetiklerken SendAsync çağrılan yöntemi belirtmek için bir PingCompletedEventHandler temsilci kullanır. çağrısından SendAsyncönce etkinliğe bir PingCompletedEventHandler temsilci eklemeniz gerekir. Temsilcinin yöntemi, çağrının SendAsync sonucunu açıklayan bir nesne içeren bir PingReply nesnesi alırPingCompletedEventArgs.
PingCompletedEventArgs nesnesi özelliğini devralırUserState. Bu özellik çağrıya userTokenSendAsync geçirilen nesneyi içerir.
Uygulamanızın yanıt beklerken engellemesi gerekiyorsa yöntemlerini kullanın Send ; bu yöntemler zaman uyumlu olur.
ICMP yankı yanıt iletisi parametresi tarafından timeout belirtilen süre içinde alınmazsa, ICMP yankısı başarısız olur ve Status özelliği olarak TimedOutayarlanır.
Uyarı
için timeoutçok küçük sayılar belirtilirken, milisaniyeler dolmuş olsa timeout bile Ping yanıtı alınabiliyor.
DontFragment özelliği ise true ve toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aşarsa, ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır PacketTooBig.
ICMP yankı iletisinin Ttl hedefine ulaşmadan önce en fazla kaç kez iletilebileceğini belirtmek için özelliğini kullanın. Paket belirtilen sayıda iletildikten sonra hedefine ulaşmazsa, paket atılır ve ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır TtlExpired.
Şunlara uygulanır
SendAsync(IPAddress, Int32, Byte[], PingOptions, Object)
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
Zaman uyumsuz olarak, belirtilen veri arabelleğine sahip IPAddressbir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeyi ve ilgili ICMP yankı yanıt iletisini bu bilgisayardan almayı dener. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize ve ICMP yankı ileti paketi için parçalanma ve Yaşam Süresi değerlerini denetlemenize olanak tanır.
public:
void SendAsync(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options, object? userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken);
member this.SendAsync : System.Net.IPAddress * int * byte[] * System.Net.NetworkInformation.PingOptions * obj -> unit
Public Sub SendAsync (address As IPAddress, timeout As Integer, buffer As Byte(), options As PingOptions, userToken As Object)
Parametreler
- timeout
- Int32
Int32 ICMP yankı yanıt iletisini beklemek için milisaniye (yankı iletisini gönderdikten sonra) maksimum sayısını belirten bir değer.
- buffer
- Byte[]
Byte ICMP yankı iletisiyle gönderilecek verileri içeren ve ICMP yankı yanıt iletisinde döndürülen bir dizi. Dizi 65.500 bayttan fazla içeremez.
- options
- PingOptions
PingOptions ICMP yankı ileti paketi için parçalanma ve Yaşam Süresi değerlerini denetlemek için kullanılan nesne.
- userToken
- Object
Zaman uyumsuz işlem tamamlandığında çağrılan yöntemine geçirilen nesne.
Özel durumlar
address veya buffer şeklindedir null.
timeout, sıfırdan küçüktür.
çağrısı SendAsync devam ediyor.
ICMP iletileri gönderilirken veya alınırken bir özel durum oluştu. Oluşan tam özel durum için iç özel duruma bakın.
address geçerli bir IP adresi değil.
Bu nesne atılmış.
Boyutu buffer 65500 baytı aşıyor.
Yalnızca Linux üzerinde .NET 7 ve sonraki sürümleri: İşlem ayrıcalıklı değildir ve buffer boş değildir.
Örnekler
Aşağıdaki kod örneği, bu yöntemin nasıl çağrılduğunu gösterir. Geri çağırma yönteminin uygulanması için yöntem aşırı yükleme örneği bölümüne bakın SendAsync .
Aşağıdaki kod örneği aşağıdaki ad alanlarını gerektirir:
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading;
Aşağıdaki kod örneği zaman uyumsuz olarak bir ICMP yankı iletisi gönderir.
public static void AsyncComplexLocalPing ()
{
// Get an object that will block the main thread.
AutoResetEvent waiter = new AutoResetEvent (false);
// Ping's the local machine.
Ping pingSender = new Ping ();
// When the PingCompleted event is raised,
// the PingCompletedCallback method is called.
pingSender.PingCompleted += new PingCompletedEventHandler (PingCompletedCallback);
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);
// Send the ping asynchronously.
// Use the waiter as the user token.
// When the callback completes, it can wake up this thread.
pingSender.SendAsync (address, timeout, buffer, options, waiter);
// Prevent this example application from ending.
// A real application should do something useful
// when possible.
waiter.WaitOne ();
Console.WriteLine ("Ping example completed.");
}
Açıklamalar
SendAsync yöntemi Echo iletisini zaman uyumsuz olarak gönderir ve işlem tamamlandığında (başarıyla veya başarısız olduğunda), durumunu uygulamanıza döndürür. Uygulamanızın SendAsync engellememesi gerektiğinde yöntemini çağırın. Her çağrı, iş parçacığı havuzundan otomatik olarak ayrılan ayrı bir iş parçacığında yürütülür. Zaman uyumsuz işlem tamamlandığında olayı tetikler PingCompleted . Uygulamalar, olayı tetiklerken SendAsync çağrılan yöntemi belirtmek için bir PingCompletedEventHandler temsilci kullanır. çağrısından SendAsyncönce etkinliğe bir PingCompletedEventHandler temsilci eklemeniz gerekir. Temsilcinin yöntemi, çağrının SendAsync sonucunu açıklayan bir nesne içeren bir PingReply nesnesi alırPingCompletedEventArgs.
PingCompletedEventArgs nesnesi özelliğini devralırUserState. Bu özellik çağrıya userTokenSendAsync geçirilen nesneyi içerir.
Uygulamanız yanıt beklerken engellerse yöntemlerini kullanın Send ; bu yöntemler zaman uyumlu olur.
ICMP yankı yanıt iletisi parametresi tarafından timeout belirtilen süre içinde alınmazsa, ICMP yankısı başarısız olur ve Status özelliği olarak TimedOutayarlanır.
Uyarı
için timeoutçok küçük sayılar belirtilirken, milisaniyeler dolmuş olsa timeout bile Ping yanıtı alınabiliyor.
DontFragment özelliği ise true ve toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aşarsa, ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır PacketTooBig.
ICMP yankı iletisinin Ttl hedefine ulaşmadan önce en fazla kaç kez iletilebileceğini belirtmek için özelliğini kullanın. Paket belirtilen sayıda iletildikten sonra hedefine ulaşmazsa, paket atılır ve ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır TtlExpired.
Şunlara uygulanır
SendAsync(String, Int32, Byte[], Object)
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
Zaman uyumsuz olarak, belirtilen bilgisayara belirtilen veri arabelleğiyle bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan ilgili ICMP yankı yanıtı iletisini alır. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize olanak tanır.
public:
void SendAsync(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, object? userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, object userToken);
member this.SendAsync : string * int * byte[] * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), userToken As Object)
Parametreler
- hostNameOrAddress
- String
String ICMP yankı iletisinin hedefi olan bilgisayarı tanımlayan. Bu parametre için belirtilen değer bir ana bilgisayar adı veya IP adresinin dize gösterimi olabilir.
- timeout
- Int32
Int32 ICMP yankı yanıt iletisini beklemek için milisaniye (yankı iletisini gönderdikten sonra) maksimum sayısını belirten bir değer.
- buffer
- Byte[]
Byte ICMP yankı iletisiyle gönderilecek verileri içeren ve ICMP yankı yanıt iletisinde döndürülen bir dizi. Dizi 65.500 bayttan fazla içeremez.
- userToken
- Object
Zaman uyumsuz işlem tamamlandığında çağrılan yöntemine geçirilen nesne.
Özel durumlar
hostNameOrAddress veya null boş bir dizedir ("").
-veya-
buffer, null'e eşittir.
timeout, sıfırdan küçüktür.
çağrısı SendAsync devam ediyor.
ICMP iletileri gönderilirken veya alınırken bir özel durum oluştu. Oluşan tam özel durum için iç özel duruma bakın.
hostNameOrAddress geçerli bir IP adresine çözümlenemedi.
Bu nesne atılmış.
Boyutu buffer 65500 baytı aşıyor.
Yalnızca Linux üzerinde .NET 7 ve sonraki sürümleri: İşlem ayrıcalıklı değildir ve buffer boş değildir.
Örnekler
Aşağıdaki kod örneğinde aşırı yüklemeyi çağırma SendAsync gösterilmektedir. Bkz. sınıfa Ping genel bakış.
Açıklamalar
SendAsync yöntemi Echo iletisini zaman uyumsuz olarak gönderir ve işlem tamamlandığında (başarıyla veya başarısız olduğunda), durumunu uygulamanıza döndürür. Uygulamanızın SendAsync engellememesi gerektiğinde yöntemini çağırın. Her çağrı, iş parçacığı havuzundan otomatik olarak ayrılan ayrı bir iş parçacığında yürütülür. Zaman uyumsuz işlem tamamlandığında olayı tetikler PingCompleted . Uygulamalar, olayı tetiklerken SendAsync çağrılan yöntemi belirtmek için bir PingCompletedEventHandler temsilci kullanır. çağrısından SendAsyncönce etkinliğe bir PingCompletedEventHandler temsilci eklemeniz gerekir. Temsilcinin yöntemi, çağrının sonucunu SendAsync açıklayan bir nesne içeren bir PingReply nesne alırPingCompletedEventArgs.
PingCompletedEventArgs nesnesi özelliğini devralırUserState. Bu özellik çağrıya userTokenSendAsync geçirilen nesneyi içerir.
Uygulamanızın yanıt beklerken engellemesi gerekiyorsa yöntemlerini kullanın Send ; bu yöntemler zaman uyumlu olur.
ICMP yankı yanıt iletisi parametresi tarafından timeout belirtilen süre içinde alınmazsa, ICMP yankısı başarısız olur ve Status özelliği olarak TimedOutayarlanır.
Uyarı
için timeoutçok küçük sayılar belirtilirken, milisaniyeler dolmuş olsa timeout bile Ping yanıtı alınabiliyor.
Bu aşırı yükleme, paket parçalanması ve paket iletme için varsayılan ayarları kullanır. Toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aşarsa, ICMP yankı iletisini içeren paket aktarım sırasında parçalanabilir. Parçalanmayı önlemek için parametre alan options yöntemlerden birini SendAsync kullanın ve özelliğini olarak trueayarlayınDontFragment. olduğunda DontFragmenttrue ve toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aştığında, ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır PacketTooBig. Paket veya paket parçaları (parçalanmışsa) atılmadan önce yönlendirme düğümleri tarafından 128 kez iletilebilir. Bu ayarı değiştirmek için parametre alan bir SendAsyncoptions aşırı yükleme kullanın ve özelliğini istenen değere ayarlayın Ttl . Paket belirtilen sayıda iletildikten sonra hedefine ulaşmazsa, paket atılır ve ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır TtlExpired.
Şunlara uygulanır
SendAsync(IPAddress, Int32, Byte[], Object)
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
Zaman uyumsuz olarak, belirtilen veri arabelleğine sahip IPAddressbir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeyi ve ilgili ICMP yankı yanıt iletisini bu bilgisayardan almayı dener. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize olanak tanır.
public:
void SendAsync(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, object? userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, object userToken);
member this.SendAsync : System.Net.IPAddress * int * byte[] * obj -> unit
Public Sub SendAsync (address As IPAddress, timeout As Integer, buffer As Byte(), userToken As Object)
Parametreler
- timeout
- Int32
Int32 ICMP yankı yanıt iletisini beklemek için milisaniye (yankı iletisini gönderdikten sonra) maksimum sayısını belirten bir değer.
- buffer
- Byte[]
Byte ICMP yankı iletisiyle gönderilecek verileri içeren ve ICMP yankı yanıt iletisinde döndürülen bir dizi. Dizi 65.500 bayttan fazla içeremez.
- userToken
- Object
Zaman uyumsuz işlem tamamlandığında çağrılan yöntemine geçirilen nesne.
Özel durumlar
address veya buffer şeklindedir null.
timeout, sıfırdan küçüktür.
çağrısı SendAsync devam ediyor.
ICMP iletileri gönderilirken veya alınırken bir özel durum oluştu. Oluşan tam özel durum için iç özel duruma bakın.
address geçerli bir IP adresi değil.
Bu nesne atılmış.
Boyutu buffer 65500 baytı aşıyor.
Yalnızca Linux üzerinde .NET 7 ve sonraki sürümleri: İşlem ayrıcalıklı değildir ve buffer boş değildir.
Örnekler
Aşırı yükleme çağırmayı gösteren bir SendAsync kod örneği için sınıfa genel bakış bölümüne Ping bakın.
Açıklamalar
Bu yöntem yankı iletisini zaman uyumsuz olarak gönderir ve işlem tamamlandığında (başarıyla veya başarısız olduğunda), durumunu uygulamanıza döndürür. Uygulamanızın SendAsync engellememesi gerektiğinde yöntemini çağırın. Her çağrı, iş parçacığı havuzundan otomatik olarak ayrılan ayrı bir iş parçacığında yürütülür. Zaman uyumsuz işlem tamamlandığında olayı tetikler PingCompleted . Olayı tetiklerken SendAsync çağrılan yöntemi belirtmek için çağırmadan SendAsyncönce olaya bir PingCompletedEventHandler temsilci eklemeniz gerekir. Temsilcinin yöntemi, çağrının SendAsync sonucunu açıklayan bir nesne içeren bir PingReply nesnesi alırPingCompletedEventArgs.
PingCompletedEventArgs nesnesi özelliğini devralırUserState. Bu özellik çağrıya userTokenSendAsync geçirilen nesneyi içerir.
Uyarı
Uygulamanız yanıt beklerken engellerse yöntemlerini kullanın Send ; bu yöntemler zaman uyumlu olur.
ICMP yankı yanıt iletisi parametresi tarafından timeout belirtilen süre içinde alınmazsa, ICMP yankısı başarısız olur ve Status özelliği olarak TimedOutayarlanır.
Uyarı
için timeoutçok küçük sayılar belirtilirken, milisaniyeler dolmuş olsa timeout bile Ping yanıtı alınabiliyor.
Bu aşırı yükleme, paket parçalanması ve paket iletme için varsayılan ayarları kullanır. Toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aşarsa, ICMP yankı iletisini içeren paket aktarım sırasında parçalanabilir. Parçalanmayı önlemek için parametre alan options yöntemlerden birini SendAsync kullanın ve özelliğini olarak trueayarlayınDontFragment. olduğunda DontFragmenttrue ve toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aştığında, ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır PacketTooBig. Paket veya paket parçaları (parçalanmışsa) atılmadan önce yönlendirme düğümleri tarafından 128 kez iletilebilir. Bu ayarı değiştirmek için parametre alan bir SendAsyncoptions aşırı yükleme kullanın ve özelliğini istenen değere ayarlayın Ttl . Paket belirtilen sayıda iletildikten sonra hedefine ulaşmazsa, paket atılır ve ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır TtlExpired.
Şunlara uygulanır
SendAsync(IPAddress, Int32, Object)
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
Belirtilen IPAddressdeğerine sahip bilgisayara zaman uyumsuz olarak bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan ilgili ICMP yankı yanıt iletisini alır. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize olanak tanır.
public:
void SendAsync(System::Net::IPAddress ^ address, int timeout, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, object? userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, object userToken);
member this.SendAsync : System.Net.IPAddress * int * obj -> unit
Public Sub SendAsync (address As IPAddress, timeout As Integer, userToken As Object)
Parametreler
- timeout
- Int32
Int32 ICMP yankı yanıt iletisini beklemek için milisaniye (yankı iletisini gönderdikten sonra) maksimum sayısını belirten bir değer.
- userToken
- Object
Zaman uyumsuz işlem tamamlandığında çağrılan yöntemine geçirilen nesne.
Özel durumlar
address, null'e eşittir.
timeout, sıfırdan küçüktür.
Yöntem çağrısı SendAsync(IPAddress, Int32, Byte[], Object) devam ediyor.
ICMP iletileri gönderilirken veya alınırken bir özel durum oluştu. Oluşan tam özel durum için iç özel duruma bakın.
address geçerli bir IP adresi değil.
Bu nesne atılmış.
Örnekler
Aşırı yükleme çağırmayı gösteren bir SendAsync kod örneği için sınıfa genel bakış bölümüne Ping bakın.
Açıklamalar
SendAsync yöntemi Echo iletisini zaman uyumsuz olarak gönderir ve işlem tamamlandığında (başarıyla veya başarısız olduğunda), durumunu uygulamanıza döndürür. Uygulamanızın SendAsync engellememesi gerektiğinde yöntemini çağırın. Her çağrı, iş parçacığı havuzundan otomatik olarak ayrılan ayrı bir iş parçacığında yürütülür. Zaman uyumsuz işlem tamamlandığında olayı tetikler PingCompleted . Uygulamalar, olayı tetiklerken SendAsync çağrılan yöntemi belirtmek için bir PingCompletedEventHandler temsilci kullanır. çağrısından SendAsyncönce etkinliğe bir PingCompletedEventHandler temsilci eklemeniz gerekir. Temsilcinin yöntemi, çağrının SendAsync sonucunu açıklayan bir nesne içeren bir PingReply nesnesi alırPingCompletedEventArgs.
PingCompletedEventArgs nesnesi özelliğini devralırUserState. Bu özellik çağrıya userTokenSendAsync geçirilen nesneyi içerir.
Uygulamanızın yanıt beklerken engellemesi gerekiyorsa yöntemlerini kullanın Send ; bu yöntemler zaman uyumlu olur.
ICMP yankı yanıt iletisi parametresi tarafından timeout belirtilen süre içinde alınmazsa, ICMP yankısı başarısız olur ve Status özelliği olarak TimedOutayarlanır.
Uyarı
için timeoutçok küçük sayılar belirtilirken, milisaniyeler dolmuş olsa timeout bile Ping yanıtı alınabiliyor.
Bu aşırı yükleme, paket parçalanması ve paket iletme için varsayılan ayarları kullanır. Toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aşarsa, ICMP yankı iletisini içeren paket aktarım sırasında parçalanabilir. Parçalanmayı önlemek için parametre alan options yöntemlerden birini SendAsync kullanın ve özelliğini olarak trueayarlayınDontFragment. olduğunda DontFragmenttrue ve toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aştığında, ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır PacketTooBig. Paket veya paket parçaları (parçalanmışsa) atılmadan önce yönlendirme düğümleri tarafından 128 kez iletilebilir. Bu ayarı değiştirmek için parametre alan bir SendAsyncoptions aşırı yükleme kullanın ve özelliğini istenen değere ayarlayın Ttl . Paket belirtilen sayıda iletildikten sonra hedefine ulaşmazsa, paket atılır ve ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır TtlExpired.
Şunlara uygulanır
SendAsync(String, Object)
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
Belirtilen bilgisayara zaman uyumsuz olarak bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan karşılık gelen bir ICMP yankı yanıt iletisi alır.
public:
void SendAsync(System::String ^ hostNameOrAddress, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, object? userToken);
public void SendAsync(string hostNameOrAddress, object userToken);
member this.SendAsync : string * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, userToken As Object)
Parametreler
- hostNameOrAddress
- String
String ICMP yankı iletisinin hedefi olan bilgisayarı tanımlayan. Bu parametre için belirtilen değer bir ana bilgisayar adı veya IP adresinin dize gösterimi olabilir.
- userToken
- Object
Zaman uyumsuz işlem tamamlandığında çağrılan yöntemine geçirilen nesne.
Özel durumlar
hostNameOrAddress veya null boş bir dizedir ("").
Yöntem çağrısı SendAsync(String, Object) devam ediyor.
ICMP iletileri gönderilirken veya alınırken bir özel durum oluştu. Oluşan tam özel durum için iç özel duruma bakın.
hostNameOrAddress geçerli bir IP adresine çözümlenemedi.
Bu nesne atılmış.
Örnekler
yöntemini çağırmayı SendAsync gösteren bir kod örneği için sınıfa genel bakış bölümüne Ping bakın.
Açıklamalar
SendAsync yöntemi, yankı iletisini zaman uyumsuz olarak gönderir ve işlem tamamlandığında (başarıyla veya başarısız olduğunda), durumunu uygulamanıza döndürür. Uygulamanızın SendAsync engellememesi gerektiğinde yöntemini çağırın. Bu yönteme yapılan her çağrı, iş parçacığı havuzundan otomatik olarak ayrılan ayrı bir iş parçacığında yürütülür. Zaman uyumsuz işlem tamamlandığında olayı tetikler PingCompleted . Olayı tetiklerken SendAsync çağrılan yöntemi belirtmek için çağırmadan SendAsyncönce olaya bir PingCompletedEventHandler temsilci eklemeniz gerekir. Temsilcinin yöntemi, çağrının SendAsync sonucunu açıklayan bir nesne içeren bir PingReply nesnesi alırPingCompletedEventArgs.
PingCompletedEventArgs nesnesi özelliğini devralırUserState. Bu özellik çağrıya userTokenSendAsync geçirilen nesneyi içerir.
Uyarı
Uygulamanızın yanıt beklerken engellemesi gerekiyorsa yöntemlerini kullanın Send ; bu yöntemler zaman uyumlu olur.
Bu yöntem, ICMP yankı iletisiyle 32 Byte veri arabelleği gönderir. yöntemi, ICMP yankı yanıt iletisi için beş saniye bekler. Bu süre içinde bir yanıt almazsa, yöntem döndürür ve Status özelliği olarak TimedOutayarlanır.
Bu aşırı yükleme, paket parçalanması ve paket iletme için varsayılan ayarları kullanır. Toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aşarsa, ICMP yankı iletisini içeren paket aktarım sırasında parçalanabilir. Parçalanmayı önlemek için parametre alan options yöntemlerden birini SendAsync kullanın ve özelliğini olarak trueayarlayınDontFragment. olduğunda DontFragmenttrue ve toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aştığında, ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır PacketTooBig.
Paket veya paket parçaları, atılmadan önce yönlendirme düğümleri tarafından 128 kez iletilebilir. Bu ayarı değiştirmek için parametre alan bir SendAsyncoptions aşırı yükleme kullanın ve özelliğini istenen değere ayarlayın Ttl . Paket belirtilen sayıda iletildikten sonra hedefine ulaşmazsa, paket atılır ve ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır TtlExpired.
Şunlara uygulanır
SendAsync(IPAddress, Object)
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
Belirtilen IPAddressdeğerine sahip bilgisayara zaman uyumsuz olarak bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan ilgili ICMP yankı yanıt iletisini alır.
public:
void SendAsync(System::Net::IPAddress ^ address, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, object? userToken);
public void SendAsync(System.Net.IPAddress address, object userToken);
member this.SendAsync : System.Net.IPAddress * obj -> unit
Public Sub SendAsync (address As IPAddress, userToken As Object)
Parametreler
- userToken
- Object
Zaman uyumsuz işlem tamamlandığında çağrılan yöntemine geçirilen nesne.
Özel durumlar
address, null'e eşittir.
Yöntemine SendAsync bir çağrı devam ediyor.
ICMP iletileri gönderilirken veya alınırken bir özel durum oluştu. Oluşan tam özel durum için iç özel duruma bakın.
address geçerli bir IP adresi değil.
Bu nesne atılmış.
Örnekler
Bir yöntemi çağırmayı gösteren bir SendAsync kod örneği için sınıfa genel bakış bölümüne Ping bakın.
Açıklamalar
SendAsync yöntemi, yankı iletisini zaman uyumsuz olarak gönderir ve işlem tamamlandığında (başarıyla veya başarısız olduğunda), durumunu uygulamanıza döndürür. Uygulamanızın SendAsync engellememesi gerektiğinde yöntemini çağırın. Bu yönteme yapılan her çağrı, iş parçacığı havuzundan otomatik olarak ayrılan ayrı bir iş parçacığında yürütülür. Zaman uyumsuz işlem tamamlandığında olayı tetikler PingCompleted . Olayı tetiklerken SendAsync çağrılan yöntemi belirtmek için çağırmadan SendAsyncönce olaya bir PingCompletedEventHandler temsilci eklemeniz gerekir. Temsilcinin yöntemi, çağrının SendAsync sonucunu açıklayan bir nesne içeren bir PingReply nesnesi alırPingCompletedEventArgs.
PingCompletedEventArgs nesnesi özelliğini devralırUserState. Bu özellik çağrıya userTokenSendAsync geçirilen nesneyi içerir.
Uyarı
Uygulamanızın yanıt beklerken engellemesi gerekiyorsa yöntemlerden birini Send kullanın; bu yöntemler zaman uyumlu olur.
Bu yöntem, ICMP yankı iletisiyle 32 Byte veri arabelleği gönderir. yöntemi, ICMP yankı yanıt iletisi için beş saniye bekler. Bu süre içinde yanıt almazsa, yöntemi döndürür ve Status özelliği olarak TimedOutayarlanır.
Bu aşırı yükleme, paket parçalanması ve paket iletme için varsayılan ayarları kullanır. Toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aşarsa, ICMP yankı iletisini içeren paket aktarım sırasında parçalanabilir. Parçalanmayı önlemek için parametre alan options yöntemlerden birini SendAsync kullanın ve özelliğini olarak trueayarlayınDontFragment. olduğunda DontFragmenttrue ve toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aştığında, ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır PacketTooBig.
Paket veya paket parçaları, atılmadan önce yönlendirme düğümleri tarafından 128 kez iletilebilir. Bu ayarı değiştirmek için parametre alan bir SendAsyncoptions aşırı yükleme kullanın ve özelliğini istenen değere ayarlayın Ttl . Paket belirtilen sayıda iletildikten sonra hedefine ulaşmazsa, paket atılır ve ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır TtlExpired.
Şunlara uygulanır
SendAsync(String, Int32, Object)
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
- Kaynak:
- Ping.cs
Belirtilen bilgisayara zaman uyumsuz olarak bir İnternet Denetim İletisi Protokolü (ICMP) yankı iletisi göndermeye çalışır ve bu bilgisayardan karşılık gelen bir ICMP yankı yanıt iletisi alır. Bu aşırı yükleme, işlem için bir zaman aşımı değeri belirtmenize olanak tanır.
public:
void SendAsync(System::String ^ hostNameOrAddress, int timeout, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, int timeout, object? userToken);
public void SendAsync(string hostNameOrAddress, int timeout, object userToken);
member this.SendAsync : string * int * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, userToken As Object)
Parametreler
- hostNameOrAddress
- String
String ICMP yankı iletisinin hedefi olan bilgisayarı tanımlayan. Bu parametre için belirtilen değer bir ana bilgisayar adı veya IP adresinin dize gösterimi olabilir.
- timeout
- Int32
Int32 ICMP yankı yanıt iletisini beklemek için milisaniye (yankı iletisini gönderdikten sonra) maksimum sayısını belirten bir değer.
- userToken
- Object
Zaman uyumsuz işlem tamamlandığında çağrılan yöntemine geçirilen nesne.
Özel durumlar
hostNameOrAddress veya null boş bir dizedir ("").
timeout, sıfırdan küçüktür.
çağrısı SendAsync devam ediyor.
ICMP iletileri gönderilirken veya alınırken bir özel durum oluştu. Oluşan tam özel durum için iç özel duruma bakın.
hostNameOrAddress geçerli bir IP adresine çözümlenemedi.
Bu nesne atılmış.
Örnekler
yöntemini çağırmayı SendAsync gösteren bir kod örneği için sınıfa genel bakış bölümüne Ping bakın.
Açıklamalar
SendAsync yöntemi Echo iletisini zaman uyumsuz olarak gönderir ve işlem tamamlandığında (başarıyla veya başarısız olduğunda), durumunu uygulamanıza döndürür. Uygulamanızın SendAsync engellememesi gerektiğinde yöntemini çağırın. Her çağrı, iş parçacığı havuzundan otomatik olarak ayrılan ayrı bir iş parçacığında yürütülür. Zaman uyumsuz işlem tamamlandığında olayı tetikler PingCompleted . Uygulamalar, olayı tetiklerken SendAsync çağrılan yöntemi belirtmek için bir PingCompletedEventHandler temsilci kullanır. çağrısından SendAsyncönce etkinliğe bir PingCompletedEventHandler temsilci eklemeniz gerekir. Temsilcinin yöntemi, çağrının SendAsync sonucunu açıklayan bir nesne içeren bir PingReply nesnesi alırPingCompletedEventArgs.
PingCompletedEventArgs nesnesi özelliğini devralırUserState. Bu özellik çağrıya userTokenSendAsync geçirilen nesneyi içerir.
Uygulamanızın yanıt beklerken engellemesi gerekiyorsa yöntemlerini kullanın Send ; bu yöntemler zaman uyumlu olur.
ICMP yankı yanıt iletisi parametresi tarafından timeout belirtilen süre içinde alınmazsa, ICMP yankısı başarısız olur ve Status özelliği olarak TimedOutayarlanır.
Uyarı
için timeoutçok küçük sayılar belirtilirken, milisaniyeler dolmuş olsa timeout bile Ping yanıtı alınabiliyor.
Bu aşırı yükleme, paket parçalanması ve paket iletme için varsayılan ayarları kullanır. Toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aşarsa, ICMP yankı iletisini içeren paket aktarım sırasında parçalanabilir. Parçalanmayı önlemek için parametre alan options yöntemlerden birini SendAsync kullanın ve özelliğini olarak trueayarlayınDontFragment. olduğunda DontFragmenttrue ve toplam paket boyutu, yerel ve uzak bilgisayarlar arasındaki yönlendirme düğümlerinden biri tarafından iletilebilen maksimum paket boyutunu aştığında, ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır PacketTooBig. Paket veya paket parçaları (parçalanmışsa) atılmadan önce yönlendirme düğümleri tarafından 128 kez iletilebilir. Bu ayarı değiştirmek için parametre alan bir SendAsyncoptions aşırı yükleme kullanın ve özelliğini istenen değere ayarlayın Ttl . Paket belirtilen sayıda iletildikten sonra hedefine ulaşmazsa, paket atılır ve ICMP yankı isteği başarısız olur. Bu durumda, Status olarak ayarlanır TtlExpired.