Sieci komputerowe wykład S.
Większość nazw rozbudowanych funkcji dotyczących gniazd w Winsock 2.2 rozpoczyna się od liter WSA. Tego przedrostka nie ma większość funkcji z Winsock 1.1 (za wyjątkiem np. WSAStartup i WSACleanup). Winsock 2.2 umożliwia stosowanie podstawowych funkcji z Winsock 1.1 (bez przedrostka WSA).
Gniazda można otworzyć za pomocą dwóch funkcji: WSASocket (Winsock 2.2) i socket (Winsock 1.1).
Podstawowa wersja:
SOCKET socket ( int sf, int type, int protocol
Rozbudowana wersja:
SOCKET WSASocket (
int af, //rodzina adresów - dla TCP i U DP jest to AF_INET
int type, // typ protokołu np. SOCK_STREAM dla TCP, SOCK_DGRAM dla UDP
int protocol, // IPPROTOJP dla TCP, IPPROTO.UDP dla UDP
LPWSAPROTOCOL_INFO lpProtocolInfo, // zaawansowane użycie
GROUP g, // nie używane
DWORD dwFlags // zaawansowane użycie
Adresowanie gniazd.
struci sockaddr Jn
short sin_family; //AF_INET
u_short sin_port; // numer portu w sieciowej kolejności bajtów
struct in_addr sin_addr; // adres 1P 32 bity w sieciowej kolejności char sin_zero[8]; // dla zgodności rozmiaru struktury z sockaddr.
Numery portów:
0-1023 zarezerwowane dla usług powszechnie znanych,
1024-49151 do wykorzystania przez programy
49152-65535 porty dynamiczne i do wykorzystania przez programy.
Konwersja wartości wielobajtowych z kolejności sieciowej na kolejność komputera i odwrotnie.
u_long htonl(u_long hostlong); u_short htons(u_short hostshort); u_long ntohl (u_long netlong); u_short ntohs(u_short netshort);
Są również odpowiedniki bardziej rozbudowane z przedrostkami WSA (patrz Pomoc).
2