Socket.Poll 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.
Aşırı Yüklemeler
Poll(TimeSpan, SelectMode) |
Socketdurumunu belirler. |
Poll(Int32, SelectMode) |
Socketdurumunu belirler. |
Poll(TimeSpan, SelectMode)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Socketdurumunu belirler.
public:
bool Poll(TimeSpan timeout, System::Net::Sockets::SelectMode mode);
public bool Poll (TimeSpan timeout, System.Net.Sockets.SelectMode mode);
member this.Poll : TimeSpan * System.Net.Sockets.SelectMode -> bool
Public Function Poll (timeout As TimeSpan, mode As SelectMode) As Boolean
Parametreler
- timeout
- TimeSpan
Yanıt bekleme süresi.
- mode
- SelectMode
Değerlerden SelectMode biri.
Döndürülenler
parametresinde Socket geçirilen yoklama modu değerine göre öğesinin mode
durumu. Süresi dolmadan önce aşağıdaki koşullardan timeout
herhangi biri gerçekleşirse döndürürtrue
, aksi takdirde döndürürfalse
.
- içinSelectRead, çağrıldıysa ve bağlantı bekleniyorsaListen(), veriler okunabilecekse veya bağlantı kapatıldıysa, sıfırlandıysa veya sonlandırıldıysa döndürür
true
. - içinSelectWrite, bir Connect işleniyorsa ve bağlantı başarılı olduysa veya veri gönderilebiliyorsa döndürür
true
. - içinSelectError, engellemeyen bir Connect işlendiğinde ve bağlantı başarısız olduysa veya ayarlanmadıysa ve bant dışı veriler kullanılabilir olduğunda OutOfBandInline döndürür
true
. - Aksi takdirde döndürür
false
.
Özel durumlar
timeout
-1 milisaniyeden küçük veya milisaniyeden MaxValue büyük.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Şunlara uygulanır
Poll(Int32, SelectMode)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Socketdurumunu belirler.
public:
bool Poll(int microSeconds, System::Net::Sockets::SelectMode mode);
public bool Poll (int microSeconds, System.Net.Sockets.SelectMode mode);
member this.Poll : int * System.Net.Sockets.SelectMode -> bool
Public Function Poll (microSeconds As Integer, mode As SelectMode) As Boolean
Parametreler
- microSeconds
- Int32
Mikrosaniye cinsinden yanıt bekleme süresi.
- mode
- SelectMode
Değerlerden SelectMode biri.
Döndürülenler
parametresinde Socket geçirilen yoklama modu değerine göre öğesinin mode
durumu.
- içinSelectRead, çağrıldıysa ve bağlantı bekleniyorsaListen(), veriler okunabilecekse veya bağlantı kapatıldıysa, sıfırlandıysa veya sonlandırıldıysa döndürür
true
. - içinSelectWrite, bir Connect işleniyorsa ve bağlantı başarılı olduysa veya veri gönderilebiliyorsa döndürür
true
. - içinSelectError, engellemeyen bir Connect işlendiğinde ve bağlantı başarısız olduysa veya ayarlanmadıysa ve bant dışı veriler kullanılabilir olduğunda OutOfBandInline döndürür
true
. - Aksi takdirde döndürür
false
.
Özel durumlar
mode
parametresi değerlerden SelectMode biri değildir.
Yuvaya erişmeye çalışılırken bir hata oluştu. Aşağıdaki açıklamalara bakın.
Kapatılmış Socket .
Örnekler
Aşağıdaki kod örneği bir yuva oluşturur, bir sunucuya bağlanır ve yuvanın durumunu denetlemek için kullanır Poll .
//Creates the Socket for sending data over TCP.
Socket^ s = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream,
ProtocolType::Tcp );
// Connects to host using IPEndPoint.
s->Connect( EPhost );
if ( !s->Connected )
{
strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
if ( s->Poll( -1, SelectMode::SelectWrite ) )
{
Console::WriteLine( "This Socket is writable." );
}
else if ( s->Poll( -1, SelectMode::SelectRead ) )
{
Console::WriteLine( "This Socket is readable." );
}
else if ( s->Poll( -1, SelectMode::SelectError ) )
{
Console::WriteLine( "This Socket has an error." );
}
//Creates the Socket for sending data over TCP.
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp );
// Connects to host using IPEndPoint.
s.Connect(EPhost);
if (!s.Connected)
{
strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
if(s.Poll(-1, SelectMode.SelectWrite)){
Console.WriteLine("This Socket is writable.");
}
else if (s.Poll(-1, SelectMode.SelectRead)){
Console.WriteLine("This Socket is readable." );
}
else if (s.Poll(-1, SelectMode.SelectError)){
Console.WriteLine("This Socket has an error.");
}
'Creates the Socket for sending data over TCP.
Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' Connects to host using IPEndPoint.
s.Connect(EPhost)
If Not s.Connected Then
strRetPage = "Unable to connect to host"
End If
' Use the SelectWrite enumeration to obtain Socket status.
If s.Poll(- 1, SelectMode.SelectWrite) Then
Console.WriteLine("This Socket is writable.")
Else
If s.Poll(- 1, SelectMode.SelectRead) Then
Console.WriteLine(("This Socket is readable. "))
Else
If s.Poll(- 1, SelectMode.SelectError) Then
Console.WriteLine("This Socket has an error.")
End If
End If
End If
Açıklamalar
yöntemi, Poll durumunu Socketdenetler. parametresinin selectMode
okunabilir olup olmadığını belirlemesini Socket belirtinSelectMode.SelectRead. yazılabilir olup olmadığını Socket belirlemek için belirtinSelectMode.SelectWrite. Hata koşulunu algılamak için kullanın SelectMode.SelectError .
Poll , ile ölçülen microseconds
belirtilen süreye kadar yürütmeyi engeller veya veriler kullanılabilir duruma gelir.
microSeconds
Yanıt için süresiz olarak beklemek istiyorsanız parametresini negatif bir tamsayıya ayarlayın. Birden çok yuvanın durumunu denetlemek istiyorsanız yöntemini kullanmayı Select tercih edebilirsiniz.
Not
bir alırsanız, belirli bir SocketExceptionhata kodunu almak için özelliğini kullanın SocketException.ErrorCode . Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Not
Bu yöntem, bozuk bir ağ kablosu gibi belirli türdeki bağlantı sorunlarını veya uzak ana bilgisayarın düzgün bir şekilde kapatıldığını algılayamaz. Bu tür hataları algılamak için veri göndermeye veya almaya çalışmanız gerekir.
Not
Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.