Udostępnij za pośrednictwem


CAsyncSocket::Create

Call Tworzenie funkcji składowej po konstruowania obiektu gniazda, aby utworzyć gniazda systemu Windows i dołączyć go.

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  
);

Parametry

  • nSocketPort
    Dobrze znanego portu do użytku z gniazda lub 0, jeśli chcesz, aby usługi Windows Sockets, aby wybrać port.

  • nSocketType
    SOCK_STREAM lub SOCK_DGRAM.

  • lEvent
    Maskę bitową, które określa kombinację zdarzeń sieci, w których aplikacja jest zainteresowany.

    • FD_READ powinien otrzymać powiadomienie o gotowości do odczytu.

    • FD_WRITE powinien otrzymać powiadomienie o gotowości do zapisu.

    • FD_OOB powinien otrzymać powiadomienie o przybyciu danych-band.

    • FD_ACCEPT chcesz otrzymywać powiadomienia o połączeń przychodzących.

    • FD_CONNECT chcesz otrzymywać powiadomienia o zakończonych połączenia.

    • FD_CLOSE chcesz otrzymywać powiadomienia o zamknięciu gniazda.

  • lpszSockAddress
    Wskaźnik do ciąg zawierający adres sieciowy gniazda podłączone, liczbę kropkami, na przykład "128.56.22.8".Przekazując NULL ciąg dla ten parametr wskazuje, CAsyncSocket wystąpienia powinna nasłuchiwać aktywność klientów na wszystkich interfejsach sieciowych.

Wartość zwracana

Różna od zera, jeśli funkcja się powiedzie; w przeciwnym razie 0, a kod błędu mogą być pobierane przez wywołanie GetLastError.Ta funkcja składowa dotyczą następujące błędy:

  • WSANOTINITIALISED udanym AfxSocketInit musi być wcześniejsza niż przy użyciu tego interfejsu API.

  • WSAENETDOWN implementację The Windows Sockets wykrył, że podsystem sieci nie powiodło się.

  • WSAEAFNOSUPPORT rodziny podany adres nie jest obsługiwana.

  • WSAEINPROGRESS Trwa operacja blokująca Windows Sockets.

  • WSAEMFILE nie więcej deskryptorów plików są dostępne.

  • WSAENOBUFSBrak miejsca w buforze jest dostępna.Nie można utworzyć gniazda.

  • WSAEPROTONOSUPPORT określony port nie jest obsługiwana.

  • WSAEPROTOTYPE określony port jest niewłaściwego typu dla tego gniazda.

  • WSAESOCKTNOSUPPORT podanego typu gniazda nie jest obsługiwane w tej rodzinie adresów.

Uwagi

Tworzenie wywołania Gniazdo , a w przypadku powodzenia wywołuje Bind powiązać gniazda z określonego adresu.Obsługiwane są następujące typy gniazda:

  • SOCK_STREAM ustawione w kolejności, zapewnia niezawodne, pełny dupleks, opartych na połączeniu bajt strumieni.System nazw domen (TCP, Transmission Control Protocol) używa dla rodziny adresów internetowych.

  • SOCK_DGRAM obsługuje datagramy, które znajdują się pakiety bezpołączeniowy, zawodny o stałej długości maksymalnej (zazwyczaj w małych).Używa protokołu UDP (User Datagram) Rodzina adresów internetowych.

    [!UWAGA]

    Akceptuj funkcji składowej ma odniesienie do nowy, pusty CSocket obiekt jako parametr.Należy tworzyć ten obiekt przed wywołaniem Akceptuj.Należy pamiętać, że jeśli ten obiekt socket wychodzi zakresu, zamyka połączenie.Nie wywołuj Tworzenie dla tego nowego obiektu gniazda.

Ważna uwagaWażne

Tworzenie jest nie odporna na wielowątkowość.W przypadku wywołania go w środowisku wielowątkowym to może być przywołane równocześnie przez różne wątki, należy zabezpieczyć każde wywołanie obiektu mutex lub innych lock synchronizacji.

Aby dowiedzieć się więcej na temat gniazda strumienia i datagram, zobacz artykuły usługi Windows Sockets: tła i usługi Windows Sockets: portów i adresów gniazd i Interfejsu API Windows Sockets 2.

Wymagania

Nagłówek: afxsock.h

Zobacz też

Informacje

Klasa CAsyncSocket

Diagram hierarchii

CAsyncSocket::Accept

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::GetSockName

CAsyncSocket::IOCtl

CAsyncSocket::Listen

CAsyncSocket::Receive

CAsyncSocket::Send

CAsyncSocket::ShutDown