Socket.Poll Metode

Definisi

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.

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.

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.

Lihat juga

Berlaku untuk