Aracılığıyla paylaş


CAsyncSocket::IOCtl

Bir yuva modunu denetlemek için bu üye işlevini çağırın.

BOOL IOCtl(
   long lCommand,
   DWORD* lpArgument 
);

Parametreler

  • lCommand
    Yuva üzerinde gerçekleştirmek için kullanılan komut.

  • lpArgument
    Bir işaretçi parametresi için lCommand.

Dönüş Değeri

Sıfır olmayan bir değer işlevi başarılı olursa; Aksi halde 0 ve belirli bir hata kodu çağırarak alınabilir GetLastError.Aşağıdaki hatalar bu üye işlev için geçerlidir:

  • WSANOTINITIALISED başarılı bir AfxSocketInit Bu API kullanmadan önce gerçekleştirilmelidir.

  • wsaenetdown Windows Sockets başlatılmasının algılanan ağ alt sistemi başarısız oldu.

  • WSAEINVAL   lCommandGeçerli bir komut değil veya lpArgument için kabul edilebilir bir parametre değil lCommand, ya da komutu tarafından sağlanan yuva türü için geçerli değildir.

  • WSAEINPROGRESS engelleyen bir Windows yuva işlemi devam ediyor.

  • wsaenotsock bir soket tanımlayıcısı değil.

Notlar

Bu yordam, herhangi bir durumda herhangi bir yuva kullanılabilir.Almak veya yuvasıyla, protokol ve iletişim alt sistemi bağımsız ilişkili işletim parametrelerini almak için kullanılır.Aşağıdaki komutlar desteklenir:

  • FIONBIO etkinleştirmek veya devre dışı yuvadaki yapmayan modu.lpArgument Parametresi gösterdiği anda bir DWORD, hangi yapmayan modu etkin olması ise sıfır, sıfır olduğu devre dışı bırakılacak.AsyncSelect Kullanmak yapmaya sonra bir yuvada verilmiş olan IOCTL yuva engelleme moduna ayarlamak için başarısız WSAEINVAL.Yuva engelleme moduna ayarlayın ve önlemek için WSAEINVAL hatası, bir uygulama gerekir önce devre dışı AsyncSelect çağırarak AsyncSelect ile lEvent sonra parametre 0'a eşit çağrısı IOCTL.

  • FIONREAD ile okunan bayt sayısı en fazla sayısını belirleyen Al çağrısı bu yuvadan.lpArgument Parametresi gösterdiği anda bir DWORD , IOCTL sonucu depolar.Bu yuva türü ise sock_stream, FIONREAD tek bir okunabilir veriler toplam miktarını döndürür Al; toplam veri miktarını yuvada kuyruğa atılmış olarak bunu normal olarak aynıdır.Bu yuva türü ise sock_dgram, FIONREAD ilk datagram boyutunu sıraya yuvada döndürür.

  • SIOCATMARK tüm bant içi veri okuma olup olmadığını belirleyin.Bu türde yalnızca bir sokete geçerlidir sock_stream yapılandırılmış satır içi herhangi bir bant içi veri alımını (SO_OOBINLINE).Bant içi veri Okunmayı bekleyen işlem sıfır olmayan bir değer döndürür.Aksi halde 0 ve sonraki döndürür Al veya ReceiveFrom gerçekleştirilen yuva bazılarını veya tümünü "işareti"; önceki veri alır Uygulama kullanması gereken SIOCATMARK herhangi bir veri kalır olup olmadığını belirleme işlemi."Acil" (Bant-) veriler önceki herhangi bir normal veri ise sırayla alınır.(Unutmayın bir Al veya ReceiveFrom hiçbir zaman aynı çağrıda bant içi ve normal veri karıştırmak.) lpArgument Parametresi gösterdiği anda bir DWORD , IOCTL sonucu depolar.

Bu işlev bir alt kümesi olan ioctl() Berkeley yuva içinde kullanılan.Özellikle, eşdeğeri olan komutu yoktur FIOASYNC, sırada SIOCATMARK desteklenen soket düzeyinde yalnızca komut şu şekilde olacaktır.

Gereksinimler

Başlık: afxsock.h

Ayrıca bkz.

Başvuru

CAsyncSocket sınıfı

Hiyerarşi grafik

CAsyncSocket::AsyncSelect

CAsyncSocket::Create

CAsyncSocket::GetSockOpt

CAsyncSocket::SetSockOpt