Socket.IOControl Yöntem

Tanım

için Socketalt düzey işletim modlarını ayarlar.

Aşırı Yüklemeler

Name Description
IOControl(Int32, Byte[], Byte[])

Sayısal denetim kodlarının kullanılması için Socket alt düzey çalışma modlarını ayarlar.

IOControl(IOControlCode, Byte[], Byte[])

Denetim kodlarını belirtmek üzere numaralandırmayı Socket kullanarak için IOControlCode alt düzey çalışma modlarını ayarlar.

IOControl(Int32, Byte[], Byte[])

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Sayısal denetim kodlarının kullanılması için Socket alt düzey çalışma modlarını ayarlar.

public:
 int IOControl(int ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::Byte> ^ optionOutValue);
public int IOControl(int ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
public int IOControl(int ioControlCode, byte[] optionInValue, byte[] optionOutValue);
member this.IOControl : int * byte[] * byte[] -> int
Public Function IOControl (ioControlCode As Integer, optionInValue As Byte(), optionOutValue As Byte()) As Integer

Parametreler

ioControlCode
Int32

Int32 Gerçekleştirilecek işlemin denetim kodunu belirten bir değer.

optionInValue
Byte[]

Byte İşlemin gerektirdiği giriş verilerini içeren bir dizi.

optionOutValue
Byte[]

Byte İşlem tarafından döndürülen çıkış verilerini içeren bir dizi.

Döndürülenler

parametresindeki optionOutValue bayt sayısı.

Özel durumlar

Yuvaya erişmeye çalışılırken bir hata oluştu.

özelliği kullanılmadan engelleme modunu değiştirme girişiminde bulunuldu Blocking .

Çağrı yığınındaki bir çağıranın gerekli izinleri yok.

Örnekler

Aşağıdaki kod örneği FIONREAD ve Available özelliğinin sonuçlarını karşılaştırır.

 // FIONREAD is also available as the "Available" property.
public const int FIONREAD   = 0x4004667F;

static void DisplayPendingByteCount(Socket s)
 {
     byte[] outValue = BitConverter.GetBytes(0);

     // Check how many bytes have been received.
     s.IOControl(FIONREAD, null, outValue);

     uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
     Console.WriteLine("server has {0} bytes pending. Available property says {1}.",
         bytesAvailable, s.Available);

     return;
 }

Açıklamalar

yöntemi, IOControl sınıfın geçerli örneğini Socket temel alan işletim sistemine Socket alt düzey erişim sağlar. Daha fazla bilgi için WSAIoctl belgelerine bakın.

Note

bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. 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.

Note

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework Ağ İzleme.

Şunlara uygulanır

IOControl(IOControlCode, Byte[], Byte[])

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Denetim kodlarını belirtmek üzere numaralandırmayı Socket kullanarak için IOControlCode alt düzey çalışma modlarını ayarlar.

public:
 int IOControl(System::Net::Sockets::IOControlCode ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::Byte> ^ optionOutValue);
public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[] optionInValue, byte[] optionOutValue);
member this.IOControl : System.Net.Sockets.IOControlCode * byte[] * byte[] -> int
Public Function IOControl (ioControlCode As IOControlCode, optionInValue As Byte(), optionOutValue As Byte()) As Integer

Parametreler

ioControlCode
IOControlCode

IOControlCode Gerçekleştirilecek işlemin denetim kodunu belirten değer.

optionInValue
Byte[]

İşlemin gerektirdiği giriş verilerini içeren tür Byte dizisi.

optionOutValue
Byte[]

İşlem tarafından döndürülen çıkış verilerini içeren tür Byte dizisi.

Döndürülenler

parametresindeki optionOutValue bayt sayısı.

Özel durumlar

Yuvaya erişmeye çalışılırken bir hata oluştu.

özelliği kullanılmadan engelleme modunu değiştirme girişiminde bulunuldu Blocking .

Örnekler

Aşağıdaki kod örneği ile ve IOControl özelliğini çağırmanın DataToReadAvailable sonuçlarını karşılaştırır.

static void DisplayPendingByteCount(Socket s)
{
    byte[] outValue = BitConverter.GetBytes(0);

    // Check how many bytes have been received.
    s.IOControl(IOControlCode.DataToRead, null, outValue);

    uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
    Console.Write("server has {0} bytes pending. ",
        bytesAvailable);
    Console.WriteLine("Available property says {1}.",
                     s.Available);

    return;
}

Açıklamalar

Bu yöntem, sınıfın geçerli örneğini Socket temel alan işletim sistemine Socket alt düzey erişim sağlar. Daha fazla bilgi için WSAIoctl belgelerine bakın.

Note

bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. 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.

Note

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework Ağ İzleme.

Şunlara uygulanır