CAsyncSocket::IOCtl
bool IOCTL ( uzun lCommand, dword * lpArgument );
Dönüş değeri
İşlev başarılı olursa sıfırdan farklı; Aksi halde 0 ve belirli bir hata kodu GetLastErrorçağırarak alınabilir. Üye işlev aşağıdaki hataları uygulama:
-
WSA&NOTINITIALISEDnbsp; Başarılı bir AfxSocketInit bu API kullanarak önce meydana gerekir.
-
wsae&netdownnbsp; Windows Sockets uygulaması ağ alt sistemi başarısız olduğunu tespit.
-
WSAEI&NVALnbsp;lCommand geçerli bir komut değil, lpArgument lCommandiçin kabul edilebilir bir parametre değil veya komut sağlanan yuva türü için geçerli değil.
-
WSAEI&NPROGRESSnbsp; Engelleme Windows yuva işlemi devam ediyor.
-
wsae¬socknbsp; Bir soket tanımlayıcısı değil.
Parametreleri
lCommand
Soket üzerindeki gerçekleştirmek için komutu.
lpArgument
LCommand için bir parametre işaretçisi.
Açıklamalar
Bir soket modunu denetlemek için bu üye işlevini çağırın. Bu yordam, herhangi bir durumda herhangi bir yerde kullanılabilir. Almak veya yuva, protokolü alt bağımsız ile ilişkili işletim parametrelerini almak için kullanılır. Aşağıdaki komutlar desteklenir:
-
FIO&NBIOnbsp; Etkinleştirmek veya yuvadaki bloklama modu devre dışı bırakın. LpArgument parametresi bloklama modu etkinleştirilmesi ve devre dışı ise, sıfır ise sıfır olan bir dword, noktalarda. AsyncSelect üzerinde bir soket verilmiş olan IOCTL soketi engelleme moduna ayarlamak için kullanma girişimi WSAEINVALile başarısız olur. Soketi engelleme moduna ayarlayın ve WSAEINVAL hatayı önlemek için uygulama gerekir ilk AsyncSelect arayan AsyncSelect lEvent parametresi 0'a eşit olarak devre dışı bırakın, sonra IOCTL çağrısı.
-
FIO&NREADnbsp; Okunabilir bayt sayısını belirlemek bir alma çağrısı bu yuvadan. LpArgument parametresi noktalarda dword içinde sonucu IOCTL kaydeder. Bu yuva türü sock_streamise, FIONREAD tek bir almaokunabilir veriler toplam tutarı verir; Toplam veri miktarını sokete kuyruğa atılmış olarak genellikle aynıdır. Bu yuva türü sock_dgram FIONREAD soket üzerindeki ilk datagram boyutunu sıraya döndürür.
-
SIOCATMARKnbsp; Tüm band dışı veri okumak olup olmadığını belirleyin. Bu sadece bir soket türü (SO_OOBI&NLINE) bant veri satırı alımı için yapılandırılmış sock_stream geçerlidir. Band dışı veri okumak için bekliyor, işlem sıfır döndürür. Aksi takdirde 0 döndürür ve ileri alma veya soket üzerindeki gerçekleştirilen ReceiveFrom bazılarını veya tümünü "işareti"; önceki veri alır Uygulama veri kalır olup olmadığını belirlemek için SIOCATMARK işlemini kullanmalısınız. "Acil" (bant-) veriler önceki herhangi bir normal veri varsa, sırayla alınır. (Not alma veya ReceiveFrom asla aynı çağrı bant ve normal veri karışımı.) Hangi sonucu IOCTL depolayan bir dword lpArgument parametre noktalarda.
Bu işlev, Berkeley yuva içinde kullanılan ioctl() bir alt kümesidir. Özellikle, orada SIOCATMARK desteklenen soket düzeyinde yalnızca komutu ise FIOASYNCiçin eşdeğeri olan hiçbir komutu.
CAsyncSocket genel bakış |nbsp; Sınıf üyeleri | Hiyerarşi çizelgesi
Ayrıca bkz: CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::GetSockOpt, CAsyncSocket::SetSockOpt