Aracılığıyla paylaş


CAsyncSocket::Create

Call Create üye işlevini Windows yuva oluşturmak ve onu eklemek için bir yuva nesnesi oluşturarak sonra.

BOOL Create(
   UINT nSocketPort = 0,
   int nSocketType = SOCK_STREAM,
   long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
   LPCTSTR lpszSocketAddress = NULL 
);

Parametreler

  • nSocketPort
    Bir bağlantı noktası seçmek için Windows Sockets istiyorsanız, yuva veya 0 ile kullanılmak üzere ayrılan bağlantı.

  • nSocketType
    sock_stream veya sock_dgram.

  • lEvent
    Hangi uygulamanın ilgilendiği ağ olaylarını birleşimi belirten bir bit maskesi.

    • fd_read okumak için hazırlık hakkında bildirim almak istiyor.

    • FD_WRITE yazmak için hazırlık hakkında bildirim almak istiyor.

    • fd_oob bant içi veri geldiğini bildirim almak istiyor.

    • fd_accept gelen bağlantıları hakkında bildirim almak istiyor.

    • fd_connect tamamlanmış bağlantı hakkında bildirim almak istiyor.

    • fd_close yuva kapanışı hakkında bildirim almak istiyor.

  • lpszSockAddress
    Bağlı bir yuva, "128.56.22.8" gibi noktalı bir sayı ağ adresini içeren bir dize için bir işaretçi.Geçirerek null için bu parametreyi gösterir dize CAsyncSocket örneği, tüm ağ arabirimlerinde istemci etkinliği için dinlemek.

Dönüş Değeri

İşlev başarılı olursa sıfırdan farklı; Aksi halde 0 ve özel hata kodu çağırarak alınabilir GetLastError.Aşağıdaki hatalar bu üye işlev uygulanır:

  • WSANOTINITIALISED başarılı bir AfxSocketInit bu API kullanmadan önce yürütülmelidir.

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

  • wsaeafnosupport belirtilen adres ailesi desteklenmiyor.

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

  • WSAEMFILE daha fazla hiçbir dosya tanımlayıcıları vardır.

  • WSAENOBUFSArabellek alanı kullanılabilir.Yuva oluşturulamıyor.

  • wsaeprotonosupport belirtilen bağlantı noktası desteklenmiyor.

  • wsaeprototype belirtilen bağlantı noktası bu yuva için yanlış türdür.

  • wsaesocktnosupport bu adres ailesinde belirtilen yuva türü desteklenmiyor.

Notlar

Oluşturma çağrıları yuva ve başarılı olursa, onu çağıran bağlamak belirtilen adrese yuvası bağlama.Aşağıdaki soket türleri desteklenir:

  • sock_stream sağlar sıralı, güvenilir, tam çift yönlü, bağlantı tabanlı bayt akışı.Internet Adres ailesi için İletim Denetimi Protokolü (tcp) kullanır.

  • sock_dgram sabit (genellikle küçük) en fazla uzunluk, bağlantısız, güvenilir olmayan paketlerin veri birimlerini destekler.Internet Adres ailesi için Kullanıcı Datagram Protokolü (udp) kullanır.

    [!NOT]

    Kabul üye işlevine, yeni ve boş bir başvuru alır CSocket , parametre olarak nesne.Çağırmadan önce bu nesneyi oluşturmada kabul.Aklınızda bu yuva nesnesi kapsamını bağlantıyı kapatır sönüyor.Bunu Create bu yeni yuva nesnesi için.

Önemli notÖnemli

Oluşturma olan değil iş parçacığı açısından güvenli.Burada da aynı anda farklı iş parçacıkları tarafından çağrılıp, çok iş parçacıklı ortamda aradığınız, her çağrının bir mutex veya diğer eşitleme kilit korumak emin olun.

Makaleleri akış ve datagram yuva hakkında daha fazla bilgi için bkz: Windows yuvaları: arka plan ve Windows yuvaları: Yuva adresleri ve bağlantı noktaları ve Windows Sockets 2 API.

Gereksinimler

Başlık: afxsock.h

Ayrıca bkz.

Başvuru

CAsyncSocket sınıfı

Hiyerarşi grafik

CAsyncSocket::Accept

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::GetSockName

CAsyncSocket::IOCtl

CAsyncSocket::Listen

CAsyncSocket::Receive

CAsyncSocket::Send

CAsyncSocket::ShutDown