CAsyncSocket::Receive

sanal int Al ( void * lpBuf, int nBufLen, int nFlags = 0 );

Dönüş değeri

Hata oluşmazsa, Al alınan bayt sayısını döndürür. Bağlantı kapatıldı, 0 döndürür. Aksi takdirde, socket_error değeri döndürülür ve bir özel hata kodu GetLastErrorçağırarak alınabilir. Üye işlev aşağıdaki hataları uygulama:

Parametreleri

lpBuf

Gelen veri arabelleği.

nBufLen

LpBuf bayt cinsinden uzunluğu.

nFlags

Çağrının yapıldığı yolunu belirtir. Bu işlev semantiği, soket seçenekleri ve nFlags parametresi tarafından belirlenir. İkincisi şu değerlerden herhangi bir c++ veya işleciyle birleştirerek oluşturulur:

Açıklamalar

Bir soketten veri almak için bu üye işlevini çağırın. Bu işlev, bağlı akış veya datagram soketleri için kullanılır ve gelen verileri okumak için kullanılır.

İçin daha fazla yuva türü sock_streamkadar bilgi sağlanan arabellek boyutuna kadar mevcut olduğu gibi döner. Soket band dışı veri (soket seçeneği SO_OOBINLINE) hat alımı için yapılandırılmış ve band dışı veri okunmamış ise, yalnızca bant verisi döndürülmeyecek. Uygulama daha-bant veri okumak için kalır belirlemek için kullanabilirsiniz IOCTLSIOCATMARK seçeneği ya da OnOutOfBandData .

Datagram soketleri için sağlanan arabellek boyutuna varan ilk enqueued datagram veri çıkarılan. Datagram sağlanan arabellekten büyükse, buffer datagram ilk bölümü ile doldurulur, aşırı veriler kaybolur ve alma ile hata kod WSAEMSGSIZEiçin socket_error değerini döndürür. Gelen veri yuva yok socket_error değeri ayarlamak için wsaewouldblockhata kodu döndürülür. OnReceive işlev daha fazla veri ulaştığında belirlemek için kullanılabilir.

Soket türü sock_stream ve uzak tarafı bağlantı incelikle kapattı, bir Al hemen 0 bayt alındı tamamlayacak. Bağlantı sıfırlandı, alma hata wsaeconnreset ile başarısız olur.

CAsyncSocket genel bakış |nbsp; Sınıf üyeleri | Hiyerarşi çizelgesi

Ayrıca bkz: CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send

Index