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ż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