Oto kilka prostych trybów, które pomogą Ci rozwiązać problem z winsock wsadata. g.Zapewnia system lub bibliotekę DLL do negocjowania określonej wersji Windows Sockets i uzyskania informacji o określonej implementacji Windows Sockets. Biblioteka DLL aplikacji może jedynie wydać bardziej szczegółowy atrybut Windows Socket po pomyślnym wywołaniu funkcji WSAStartup.

 

 

g.

  • 4 minuty na przeczytanie.

Składnia

  typedef struct WSAData  WORD-wWersja; WORD w High Wersja;#Jeśli ...  niepodpisane iMaxSockets;# rzeczywiście krótki ...  iMaxUdpDg podstawowy bez znaku;#Jeśli...   char * lpVendorInfo;#Jeśli ...  char szOpis [WSADESCRIPTION_LEN + 1];#Jeśli...  char szStatusSystemu [WSASYS_STATUS_LEN + 1];#inne  char + szOpis [WSADESCRIPTION_LEN 1];#zakończ, jeśli#inne  char szStatusSystemu [WSASYS_STATUS_LEN + 1];#zakończ, jeśli#inne  krótkie niepodpisane iMaxSockets;#zakończ, jeśli#inne  słaby bez znaku iMaxUdpDg;#zakończ, jeśli#inne  char * lpVendorInfo;#zakończ, jeśli WSADATA; 

Członkowie

wsadata winsock

Wersja związana ze specyfikacją Windows Sockets, której ten proces oczekuje od nieznanego wywołującego plik Ws2_32.dll. Najbardziej znaczący bajt wskazuje na bardzo zwarty numer wersji; najmniejsza część bajtu wskazuje numer wersji.

wsadata winsock

Wiodąca wersja specyfikacji Windows Sockets, według której eksperci twierdzą, że Ws2_32 obsługuje die.dll. Najbardziej ogromny bajt wskazuje numer podrekordu; ten najmniej znaczący bajt wskazuje nowy numer wersji głównego.

Jest to ta sama nagroda, co członek wVersion, jeśli pakiet żądany w parametrze wVersionRequested przekracza wysiłki WSAStartup , najwyższej wersji wewnętrznej specyfikacji Windows Sockets obsługiwanej przez Ws2_32. dll.

Maksymalna liczba gniazd elektrycznych, które można otworzyć. Windows do produkcji Sockets 2 i nowszych powinien po prostu zignorować tego subskrybenta.

Członkostwo działające w iMaxSockets jest utrzymywane ze względu na kompatybilność i po prostu jest zgodne z pojedynczą specyfikacją Windows Sockets, ale nie powinno być preferowane podczas opracowywania nowych aplikacji komputerowych. Żadna pojedyncza wartość nie jest odpowiednia dla wszystkich dostawców usług podstawowych. Architektura Windows Sockets została zmieniona dla wielu dostawców mediów w wersji 2, w połączeniu ze strukturą WSADATA nie dostarcza już do stosu jednego dostawcy.

Maksymalny rozmiar komentarzy datagramowych. Ten subskrybent jest ignorowany przez Windows Sockets Translation 2 i nowsze wersje.

Element iMaxUdpDg jest również utrzymywany w celu zapewnienia zgodności z gniazdami specyfikacji Windows 1.1, ale zasadniczo powinien być bez wątpienia używany podczas tworzenia nowych aplikacji zadań. Architektura Windows Sockets była przełączana w wersji 2 dla wielu sprzedawców, a struktura WSADATA nie trwała długo dla jednego pakietu detalisty. Funkcje powinny być wykorzystane. dla maksymalnych rzeczywistych proporcji wiadomości, które zależą od specyfiki usługodawcy Windows Sockets i typu wtyczki. getsockopt , aby uzyskać rozpoznanie parametru SO_MAX_MSG_SIZE po utworzeniu wtyczki.

Wskaźnik do informacji o nazwie. Ten członek powinien zostać zapomniany w późniejszych wersjach systemu Windows dotyczących gniazd w wersji 2.

Element lpVendorInfo jest zachowywany w celu zapewnienia zgodności ze specyfikacją Windows Sockets 1.1. Architektura Windows Sockets, która została dostosowana dla wielu usługodawców w produkcie 2, oraz struktura WSADATA mają niewielkie lub większe zastosowanie w stosie małego sprzedawcy. Aplikacje ułatwiające uzyskanie dostępu do informacji konfiguracyjnych producenta getsockopt zbieranie wartości parametru PVD_CONFIG jako informacji o producencie.

Zakończony znakiem null przechwytujący ciąg znaków ascii, do którego Ws2_32.dll kopiuje określony opis implementacji gniazd Windows. Tekst (do 256 znaków) może zawierać dowolne znaki o liczbie większej niż znaki sterujące i role formatowania. Najbardziej prawdopodobnym zastosowaniem aplikacji dotyczącym tego członka jest to, że prawie na pewno pojawi się (być może skrócony) w komunikacie o stanie biznesowym.

PageA zakończony znakiem null rejestr ascii, do którego Ws2_32.dll kopiuje główne informacje konfiguracyjne związane z raportem kredytowym. Ws2_32.dll należy używać za pośrednictwem tego parametru tylko wtedy, gdy dokładne informacje mogą być przydatne dla całego użytkownika i personelu pomocy technicznej. Ten element z pewnością należy uznać za rozszerzenie określonego parametru szDescription.

Proces WSAStartup inicjuje użycie w kroku Windows Sockets DLL podczas kroku. Funkcja WSAStartup zwraca wskaźnik dotyczący
Struktura WSADATA jest zwykle odrębna w parametrze lpWSAData.

Aktualna wersja mniej więcej specyfikacji Windows Sockets, która jest wbudowana w każdy element wHighVersion
. zwróconyStruktury WSADATA są zakodowane w wyborze 2.2, przy czym wersja w pewnej liczbie jest najmniej znaczącym bajtem, a wersja podrzędna w niektórych liczbach jest zwykle najbardziej przekonującym bajtem. Ta wersja obecnej biblioteki Winsock DLL, Ws2_32.dll, obsługuje aplikacje, które z kolei żądają jednej z następujących form specyfikacji Windows Sockets:

  • 1,0
  • 1,1
  • 2.0
  • 2.1
  • 2.2

W zależności od ogólnej wersji wymaganej we wniosku, zdecydowanie jednym z numerów wersji uzgodnionych w tym artykule jest wartość licencjonowana Jako główny numer typu znajduje się tutaj w minimalnym znaczącym bajcie, a podrzędny numer działki w najbardziej głównym bajcie , który jest przechowywany w pliku muzycznym. uważane za zwróconeperwersja Członek stowarzyszonyWSADATA Kompozycja.

Uwaga. Aplikacja powinna zignorować elementy iMaxsockets, iMaxUdpDg i lpVendorInfo w WSADATA podczas składania reklamacji, która pomoże wVersion po udanej rozmowie telefonicznej. WSAStartup jest najszybszy. Dzieje się tak, ponieważ architektura Windows Sockets została niedawno zmieniona w niektórych wersjach, które będą obsługiwać wielu dostawców i bez dodatkowych wymuszają WSADATA we własnym stosie firmy. Ogólnie wprowadzane są dwie nowe opcje gniazd, aby zapewnić oferty specyficzne dla dostawcy: SO_MAX_MSG_SIZE Das (zastępuje element iMaxUdpDg) głównie dlatego, że PVD_CONFIG (umożliwia inne ustawienia specyficzne dla dostawcy).

Przykłady

  WORD wVersionRequested;WSADATA wsaDane;w terrorze; wVersionRequested oznacza słowo MAKEWORD (2, 2); błąd odpowiada WSAStartup (wVersionRequested i wsaData);jeśli (źle! = 0)    Powiedz /* mężczyźnie lub kobiecie, że nie mogliśmy znaleźć ogromnego konkretnego użytecznego */    / * WinSock DLL. ( przestrzeń ) /    Wyzdrowieć; / * PotwierdźZaświadczamy, że WinSock DLL obsługuje wersję 2.2. 3 . // * Zwróć uwagę, że jeśli biblioteka DLL obsługuje wyższe wersje * // 3 . Zawsze zwróci parę zamiast 2 oprócz 2.2 ( spacja ) // * 2.2 w wersji wVersion, w której w tej wersji jesteśmy // * potrzebować. * / if (LOBYTE (wsaData.wVersion)! = 2 ||        HIBYTE (wsaData.wVersion)! = 2)    /* Informowanie potencjalnego klienta, że ​​nie udało nam się znaleźć idealnego, idealnego do użytku */    / * WinSock DLL. * /    WSACleanup ();    Wyzdrowieć; / * Dozwolona biblioteka DLL WinSock. Przystępować. * / 

Wymagania

Klient obsługiwany co najmniej Windows 2000 Professional [tylko żądania mobilne]
Minimalna liczba obsługiwanych serwerów Windows 2000 [tylko gry planszowe]
Tytuł winsock.h (w tym Winsock2.h)

Zobacz też

 

 

Funkcja WSAStartup ma być głównym gniazdem Windows wykonywanym przez urządzenie lub DLL. Dzięki temu aplikacja na iPhone’a potencjalnie DLL może wskazać przejętą wersję Windows Sockets i uzyskać piękne informacje o określonej implementacji Windows Sockets.

Programowanie gniazd z Winsock Windows API do programowania gniazd to winsock. Punkty sprzedaży stają się kluczową „rzeczą” stojącą za każdym klawiszem połączeń stacjonarnych wykonywanych przez cały komputer.