Socket.Poll Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
Poll(TimeSpan, SelectMode) |
Menentukan status Socket. |
Poll(Int32, SelectMode) |
Menentukan status Socket. |
Poll(TimeSpan, SelectMode)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menentukan status Socket.
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
Parameter
- timeout
- TimeSpan
Waktu untuk menunggu respons.
- mode
- SelectMode
Salah SelectMode satu nilai.
Mengembalikan
Status Socket berdasarkan nilai mode polling yang diteruskan dalam mode
parameter . Mengembalikan true
jika salah satu kondisi berikut terjadi sebelum kedaluwarsa timeout
, jika tidak, false
.
- Untuk SelectRead, ini mengembalikan
true
jika Listen() telah dipanggil dan koneksi tertunda, jika data tersedia untuk dibaca, atau jika koneksi telah ditutup, diatur ulang, atau dihentikan. - Untuk SelectWrite, ini mengembalikan
true
jika memproses Connect dan koneksi telah berhasil atau jika data dapat dikirim. - Untuk SelectError, ini mengembalikan
true
jika memproses Connect yang tidak memblokir dan koneksi telah gagal, atau jika OutOfBandInline tidak diatur dan data di luar band tersedia. - Jika tidak, ia kembali
false
.
Pengecualian
timeout
kurang dari -1 milidetik atau lebih besar dari MaxValue milidetik.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
Berlaku untuk
Poll(Int32, SelectMode)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menentukan status Socket.
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
Parameter
- microSeconds
- Int32
Waktu untuk menunggu respons, dalam mikro detik.
- mode
- SelectMode
Salah SelectMode satu nilai.
Mengembalikan
Status Socket berdasarkan nilai mode polling yang diteruskan dalam mode
parameter .
- Untuk SelectRead, ini mengembalikan
true
jika Listen() telah dipanggil dan koneksi tertunda, jika data tersedia untuk dibaca, atau jika koneksi telah ditutup, diatur ulang, atau dihentikan. - Untuk SelectWrite, ini mengembalikan
true
jika memproses Connect dan koneksi telah berhasil atau jika data dapat dikirim. - Untuk SelectError, ini mengembalikan
true
jika memproses Connect yang tidak memblokir dan koneksi telah gagal, atau jika OutOfBandInline tidak diatur dan data di luar band tersedia. - Jika tidak, ia kembali
false
.
Pengecualian
Parameter mode
bukan salah SelectMode satu nilai.
Terjadi kesalahan saat mencoba mengakses soket. Lihat keterangan di bawah ini.
Sudah Socket ditutup.
Contoh
Contoh kode berikut membuat soket, menyambungkan ke server, dan menggunakan Poll untuk memeriksa status soket.
//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
Keterangan
Metode Poll memeriksa status Socket. Tentukan SelectMode.SelectRead parameter untuk selectMode
menentukan apakah Socket dapat dibaca. Tentukan SelectMode.SelectWrite untuk menentukan apakah Socket bisa-tulis. Gunakan SelectMode.SelectError untuk mendeteksi kondisi kesalahan.
Poll akan memblokir eksekusi hingga periode waktu yang ditentukan, yang diukur dalam microseconds
, berlalu atau data menjadi tersedia. Atur microSeconds
parameter ke bilangan bulat negatif jika Anda ingin menunggu tanpa batas waktu untuk respons. Jika Anda ingin memeriksa status beberapa soket, Anda mungkin lebih suka menggunakan metode ini Select .
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Catatan
Metode ini tidak dapat mendeteksi jenis masalah koneksi tertentu, seperti kabel jaringan yang rusak, atau bahwa host jarak jauh dimatikan dengan tidak memalukan. Anda harus mencoba mengirim atau menerima data untuk mendeteksi jenis kesalahan ini.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.