İngilizce dilinde oku

Aracılığıyla paylaş


Socket.IOControl Yöntem

Tanım

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

Aşırı Yüklemeler

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ı SocketIOControlCode kullanmak için alt düzey işletim modlarını ayarlar.

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

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.

C#
public int IOControl(int ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
C#
public int IOControl(int ioControlCode, byte[] optionInValue, byte[] optionOutValue);

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.

C#
 // 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 düşük düzeyli erişim sağlar. Daha fazla bilgi için WSAIoctl belgelerine bakın.

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

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Şunlara uygulanır

.NET 10 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

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

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

Denetim kodlarını belirtmek üzere numaralandırmayı SocketIOControlCode kullanmak için alt düzey işletim modlarını ayarlar.

C#
public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
C#
public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[] optionInValue, byte[] optionOutValue);

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 DataToRead ve Available özelliğini çağırmanın IOControl sonuçlarını karşılaştırır.

C#
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 düşük düzeyli erişim sağlar. Daha fazla bilgi için WSAIoctl belgelerine bakın.

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

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Şunlara uygulanır

.NET 10 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1