Prize de Windows

Winsock sau Windows Sockets este o interfață de programare a aplicațiilor (API) creată pentru implementarea programelor în rețea pe baza protocoalelor TCP / IP.

Cu interacțiunea "client-server" în rețeaua fiecărui participant, interacțiunea poate fi considerată ca un punct final sau, altfel spus, un soclu. Socket-urile Windows au fost dezvoltate pe baza interfeței Berkeley pentru socket-uri UNIX (sau BSD), dar au adăugat suport pentru evenimente Windows. Astfel, în ciuda faptului că numai Socket-urile Windows sunt considerate, în general, programarea socket-urilor pe sistemele UNIX și Windows este similară.







În prezent, există două versiuni principale ale API-ului Winsock:

1. WinSock 1.1 - suportă doar protocoalele TCP / IP;

2. WinSock 2.0 - posibilitatea de a lucra cu o varietate de protocoale de rețea și modele, de exemplu SPX / IPX.

Specificația oficială Winsock împarte funcțiile în trei tipuri:

1. Funcțiile Berkeley;

2. funcții de informare (obținerea de informații despre denumirile domeniilor, serviciilor, protocoalelor Internet);

3. Extensii Windows pentru funcțiile Berkeley.

Toate funcțiile pot fi blocate și fără blocare. De obicei blochează funcțiile lui Berkeley. Asta este, atunci când executați această funcție, nu puteți efectua alte funcții ale WinSock.







Codul programului care inițializează interfața Winsock API (WSA) și deinitializarea sa este după cum urmează:

Programul este compilat ca un proiect consola Win32. Pentru o conexiune reușită, trebuie să adăugați fișierul wsock32.lib în lista de dependență a aplicațiilor, care face parte din orice compilator C ++ modern pentru Windows.

Folosiți #include funcțiile bibliotecii sunt conectate. Apoi, va fi declarată o constantă cu numărul versiunii cu care va rula aplicația - WINSOCK_VERSION.

Funcția WSAStartup () iniționează Winsock. Această funcție este numită întotdeauna prima atunci când începeți să lucrați cu Winsock. Prototipul său este următorul:

int WSAStartup (WORD wVersionRequested, LPWSADATA lpWSAData);

Primul parametru este versiunea care va fi utilizată. Byte-ul scăzut este versiunea principală, octetul mare este extensia versiunii. Aceasta este, în exemplu, versiunea 1.1 este utilizată. Dacă a avut loc inițializarea, valoarea zero va reveni. Inițializarea constă în maparea numărului versiunii și a bibliotecii dinamice efective (fișier cu extensia .dll) în dosarul de sistem Windows.

Al doilea parametru este un indicator pentru structura WSADATA, în care se întorc parametrii de inițializare. Structura are următoarea definiție:

typedef struct WSAData

nesemnate scurt iMaxSockets;

nesemnate scurt iMaxUdpDg;

char FAR * lpVendorInfo;

> WSADATA, FAR * LPWSADATA;

WSACleanup () termină utilizarea acestui fișier DLL și întrerupe accesul la funcțiile Winsock. Dacă reușiți, zero va reveni. Rezultatul funcționării cu succes a programului este prezentat în Figura 2.4.1.

Figura 2.4.1 - Inițializarea și dezinfectarea API-ului Winsock







Articole similare

Trimiteți-le prietenilor: