Windows Yuvaları: Yuva Bildirimleri
Bu makalede yuva sınıflarındaki bildirim işlevleri açıklanmaktadır. Bu üye işlevleri, çerçevenin yuva nesnenize önemli olayları bildirmek için çağıran geri çağırma işlevleridir. Bildirim işlevleri şunlardır:
OnReceive: Bu yuvaya alma çağrısı yaparak arabellekte veri olduğunu bildirir.
OnSend: Bu yuvaya gönder'i çağırarak veri gönderebileceğini bildirir.
OnAccept: Bu dinleme yuvasını Accept çağırarak bekleyen bağlantı isteklerini kabul edebildiğini bildirir.
Açık Bağlan: Bu bağlantı yuvasını bağlantı girişiminin tamamlandığını bildirir: belki başarılı veya belki de hatalı.
OnClose: Bu yuvaya bağlandığı yuvanın kapandığını bildirir.
Dekont
Ek bir bildirim işlevi OnOutOfBandData'dır. Bu bildirim, alıcı yuvaya gönderen yuvada "bant dışı" verilerin gönderildiğini bildirir. Bant dışı veriler, bağlı akış yuvalarının her çiftiyle ilişkili mantıksal olarak bağımsız bir kanaldır. Bant dışı kanal genellikle "acil" veriler göndermek için kullanılır. MFC bant dışı verileri destekler. CAsyncSocket sınıfıyla çalışan ileri düzey kullanıcıların bant dışı kanalı kullanması gerekebilir, ancak CSocket sınıfındaki kullanıcıların bunu kullanmaları önerilmez. Bunun daha kolay yolu, bu tür verileri geçirmek için ikinci bir yuva oluşturmaktır. Bant dışı veriler hakkında daha fazla bilgi için bkz. Windows SDK'sında bulunan Windows Yuvaları belirtimi.
sınıfından CAsyncSocket
türetilirseniz, uygulamanızın ilgilendiği ağ olayları için bildirim işlevlerini geçersiz kılmanız gerekir. sınıfından CSocket
bir sınıf türetirseniz, ilgilendiğiniz bildirim işlevlerini geçersiz kılmak sizin seçiminizdir. Ayrıca kendisini de kullanabilirsiniz CSocket
; bu durumda bildirim varsayılan olarak hiçbir şey yapmadan çalışır.
Bu işlevler geçersiz kılınabilir geri çağırma işlevleridir. CAsyncSocket
ve CSocket
iletileri bildirimlere dönüştürün, ancak kullanmak istiyorsanız bildirim işlevlerinin nasıl yanıt verdiğini uygulamanız gerekir. Bildirim işlevleri, okunacak verilerin varlığı gibi ilgi çekici bir olayla ilgili olarak yuvanıza bildirildiğinde çağrılır.
MFC, bildirim geldiğinde yuvanızın davranışını özelleştirmenize olanak sağlamak için bildirim işlevlerini çağırır. Örneğin, bildirim işlevinizdenOnReceive
, Receive
yani okunacak veriler olduğu bildirildiğinde, bunu okumak için çağırabilirsinizReceive
. Bu yaklaşım gerekli değildir, ancak geçerli bir senaryodur. Alternatif olarak ilerleme durumunu izlemek, TRACE iletilerini yazdırmak vb. için bildirim işlevinizi kullanabilirsiniz.
Türetilmiş bir yuva sınıfındaki bildirim işlevlerini geçersiz kılıp bir uygulama sağlayarak bu bildirimlerden yararlanabilirsiniz.
Veri alma veya gönderme gibi bir işlem sırasında nesne CSocket
zaman uyumlu hale gelir. Zaman uyumlu durum sırasında, geçerli yuva istediği bildirimi beklerken diğer yuvalara yönelik tüm bildirimler kuyruğa alınır. (Örneğin, bir Receive
çağrı sırasında yuva okunacak bir bildirim ister.) Yuva zaman uyumlu işlemini tamamladıktan ve yeniden zaman uyumsuz hale geldiğinde, diğer yuvalar kuyruğa alınan bildirimleri almaya başlayabilir.
Dekont
OnConnect
içinde CSocket
bildirim işlevi hiçbir zaman çağrılmaz. Bağlantılar için çağrısı yaptığınızda Connect
, bağlantı tamamlandığında döndürülecektir (başarılı veya hatalı). Bağlantı bildirimlerinin nasıl işlenme şekli bir MFC uygulama ayrıntısıdır.
Her bildirim işlevi hakkında ayrıntılı bilgi için MFC Başvurusu'ndaki sınıfın CAsyncSocket
altındaki işleve bakın. Kaynak kodu ve MFC örnekleri hakkında bilgi için bkz . MFC Örnekleri.
Daha fazla bilgi için bkz.