Aracılığıyla paylaş


: Windows Sockets Class CAsyncSocket kullanarak

Sınıf kullanılacağını açıklar CAsyncSocket.Bu sınıf, çok düşük düzeyde Windows Sockets API Kapsüller unutmayın.CAsyncSocketayrıntılı ağ iletişimleri biliyor, ancak ağ olaylarını bildirimi için geri aramalar kolaylık istediğiniz programcılar tarafından kullanılır.Bu makalede, bu duymadığını, yalnızca temel yönergeler sağlar.Büyük olasılıkla kullanmayı düşünmelisiniz CAsyncSocket postalarla mfc uygulaması birden çok ağ iletişim kuralı Windows Sockets kolaylaştırmak istiyorsanız, ancak esneklik fedakarlık istiyor.Ayrıca kendinizi sürümünden kullanarak doğrudan sınıfının genel alternatif model daha fazla iletişim programlama daha yüksek verim elde edebilirsiniz düşündüğünüz CSocket.

CAsyncSocketbelgelenen mfc başvuru.Visual C++ da içinde yer alan Windows Sockets belirtimi sağladığı Windows SDK.Ayrıntılar için bırakılır.Visual C++ örnek uygulama için tedarik değil CAsyncSocket.

Ağ iletişimi hakkında çok bilgili olmayan ve basit bir çözüm istiyor, sınıfını kullanmak CSocket ile bir CArchive nesnesi.Bkz: Windows Sockets: kullanarak yuva arşivleri ile daha fazla bilgi için.

Bu makalede yer almaktadır:

  • Oluşturma ve kullanma bir CAsyncSocket nesnesi.

  • Kendi sorumlulukları CAsyncSocket ile.

Oluşturma ve CAsyncSocket bir nesneyi kullanma

CAsyncSocket kullanmak için

  1. Yapısı bir CAsyncSocket nesne ve nesne temel oluşturmak için YUVA işleyecek.

    Bir yuva oluşturma aşaması iki inşaat mfc desen izler.

    Örne?in:

    CAsyncSocket sock;
    sock.Create( );    // Use the default parameters                    
    

    -veya-

    CAsyncSocket* pSocket = new CAsyncSocket;
    int nPort = 27;
    pSocket->Create( nPort, SOCK_DGRAM );                    
    

    Yukarıdaki ilk kurucu oluşturur bir CAsyncSocket yığındaki nesne.Kurucu oluşturur bir CAsyncSocket öbek üzerindeki.İlk Create çağrısı yukarıdaki akış soket oluşturmak için varsayılan parametreleri kullanır.İkinci Create bir belirtilen bağlantı noktasını ve adresini çağrısı datagram soket oluşturur.(Ya da kullanmak Create ya da yapım yöntemi sürümüyle.)

    Parametre Create şunlardır:

    • "Bağlantı noktası": kısa tamsayıdır.

      Bir sunucu yuvası için bir bağlantı noktası belirtmeniz gerekir.İstemci yuvası için genellikle bir bağlantı noktası seçin Windows Sockets sağlar, bu parametre için varsayılan değer kabul.

    • Yuva türü: sock_stream (varsayılan) veya sock_dgram.

    • "Adresi" "ftp.microsoft.com" veya "128.56.22.8" gibi bir yuva.

      Ağdaki Internet Protokolü (IP) adresiniz budur.Bu parametre için varsayılan değer her zaman büyük olasılıkla kullanır.

    Koşulları "bağlantı noktası" ve "yuva adresi" açıklanmıştır Windows Sockets: bağlantı noktaları ve yuva adresleri.

  2. Yuva istemcisiyse yuva nesnesi bir sunucuya yuva kullanarak CAsyncSocket::Connect.

    -veya-

    Dinlemeye başlamak için yuva yuva sunucusuysa ayarlayın (ile CAsyncSocket::Listen) bir istemciden bağlantı girişimleri için.Bağlantı isteği aldığında, onunla kabul CAsyncSocket::Accept.

    Bağlantı kabul ettikten sonra parola doğrulama gibi görevleri gerçekleştirebilirsiniz.

    [!NOT]

    Kabul üye işlev yeni, boş bir başvuru alır CSocket , parametre olarak bir nesne.Bu nesne, aramadan önce oluşturmalıdır kabul.Bu yuva nesnesi kapsam dışına çıkarsa, bağlantıyı kapatır.Çağrılmayan Create bu yeni yuva nesnesi.Örneğin, makaleye bakın Windows Sockets: sırası, işlemleri.

  3. Çağırarak başka yuva iletişimleri gerçekleştirmek CAsyncSocket Windows Sockets API işlevleri kapsülleyen bir nesnenin üye işlevler.

    Bkz: Windows Sockets belirtimi ve sınıf CAsyncSocket , mfc başvuru.

  4. Yok CAsyncSocket nesnesi.

    Yığında yuva nesnesi oluşturduysanız, kendi yıkıcıya içeren işlevi kapsam dışına çıktığında denir.Öbek üzerinde yuva nesnesi oluşturduysanız,'i kullanarak Yeni işleci, kullanmak için sorumlu silmek bir nesneyi yıkmak için işleç.

    Yıkıcı nesnenin çağıran yakın üye işlevi önce nesne yok.

Bu sırada bir kod örneği için (aslında için bir CSocket nesnesi), bkz: Windows Sockets: sırası, işlemleri.

CAsyncSocket ile kendi sorumlulukları

Sınıfın bir nesnesi oluşturduğunuzda, CAsyncSocket, Windows nesneyi Kapsüller YUVA işlemek ve bu tutamacı işlemlerini sağlar.Kullandığınızda CAsyncSocket, yönde doğrudan API kullanarak, tüm sorunları ile ilgilenme gerekir.Örne?in:

  • "Engelleme" senaryoları.

  • Bayt sırası farklılıkları gönderip makineleri.

  • Çok baytlı karakter Unicode arasında dönüştürme dizeleri (mbcs) ayarlayın.

Tanımları bu koşulları ve ek bilgi için bkz: Windows Sockets: engelleme, Windows Sockets: bayt sırası, Windows Sockets: dönüştürme dizeleri.

Bu sorunlara, sınıf CAsycnSocket esneklik ve Denetim seçebileceğiniz uygulamanız gerektiriyorsa, doğru seçim sizin için olabilir.Varsa, sınıf kullanmayı düşünmelisiniz değil, CSocket yerine.CSocketbirçok ayrıntı sizden gizler: aramalar ve erişime izin verir engelleme sırasında Windows iletilerini pumps CArchive, bayt sırası farklılıklar ve dize dönüştürme sizin için yönetir.

Daha fazla bilgi için bkz:

Ayrıca bkz.

Kavramlar

mfc, Windows Sockets