funkcje gniazd

5
Funkcje gniazd: Specyfikacja funkcji socket() Nazwa funkcji: socket() Zwracana wartość: SOCKET Jeżeli nie ma błędów, funkcja socket() zwraca referencje do nowego gniazda. W przeciwnym przypadku zwraca kod INVALID_SOCKET. Kod błędu można uzyskać przez wywołanie funkcji WSAGetLastError(). Argumenty: int af, int type, int protocol af - [in] Typ adresu stosu (address family specification). type - [in] Typ adresu dla nowych gniazd (SOCK_STREAM, SOCK_DGRAM). protocol- [in] Numer protokołu użytego przez gniazdo. Wartość parametru: IPPROTO_IP, IPPROTO_TCP, 0. Opis: Funkcja socket() tworzy gniazdo o określonym typie (specific service provider). Funkcja zadeklarowana w pliku winsock2.h, implementacja w pliku ws2_32.lib. Specyfikacja funkcji recv() Nazwa funkcji : recv() Zwracana wartość: int Jeśli nie ma błędów funkcja recv() zwraca liczbę odebranych bajtów. Jeśli połączenie zostało zamknięte (gracefully closed), zwracaną wartością jest zero. W pozostałych przypadkach zwracana jest wartość SOCKET_ERROR. Kod błędu można uzyskać wywołując funkcję WSAGetLastError(). 1

Upload: bartosz-ciupinski

Post on 27-Jun-2015

26 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Funkcje gniazd

Funkcje gniazd:

Specyfikacja funkcji socket()

Nazwa funkcji: socket()

Zwracana wartość: SOCKETJeżeli nie ma błędów, funkcja socket() zwraca referencje do nowego gniazda.W przeciwnym przypadku zwraca kod INVALID_SOCKET. Kod błędu można uzyskać przez wywołanie funkcji WSAGetLastError().

Argumenty: int af, int type, int protocol

af - [in] Typ adresu stosu (address family specification).type - [in] Typ adresu dla nowych gniazd (SOCK_STREAM, SOCK_DGRAM).protocol- [in] Numer protokołu użytego przez gniazdo. Wartość parametru: IPPROTO_IP,IPPROTO_TCP, 0.

Opis: Funkcja socket() tworzy gniazdo o określonym typie (specific service provider).Funkcja zadeklarowana w pliku winsock2.h, implementacja w pliku ws2_32.lib.

Specyfikacja funkcji recv()

Nazwa funkcji : recv()

Zwracana wartość: intJeśli nie ma błędów funkcja recv() zwraca liczbę odebranych bajtów. Jeśli połączenie zostałozamknięte (gracefully closed), zwracaną wartością jest zero. W pozostałych przypadkach zwracana jest wartość SOCKET_ERROR. Kod błędu można uzyskać wywołując funkcję WSAGetLastError().

Argumenty : SOCKET s, char* buf, int len, int flags

s - [in] Obiekt identyfikujący połączone gniazdo.buf - [out] Bufor na przychodzące dane.len - [in] Długość bufora (argumentu buf) w bajtach.flags - [in] Parametr określający typ wywołania funkcji.

Opis : Funkcja recv() odbiera dane z połączonego (connected) gniazda lub z gniazda połączonegofunkcją bind() (bound socket).

Specyfikacja funkcji send()

1

Page 2: Funkcje gniazd

Nazwa funkcji : send()

Zwracana wartość: int

Argumenty : SOCKET s, const char* buf, int len, int flags

s [in] Obiekt identyfikujący połączone gniazdo.buf [in] Bufor zawierający dane do wysłania.len [in] Długość danych w buforze (liczona w bajtach).flags [in] Wskaźnik określający typ wywołania funkcji.

Flagi:MSG_DONTROUTE – Dane nie powinny być rutowane. WinSock service provider może ignorować tą flagę.MSG_OOB –Wysyła dane ‘Out-of-Band Data’ (gniazdo typu TCP, np. SOCK_STREAM).

Opis : Funkcja send() wysyła dane do połączonego gniazda.

Specyfikacja funkcji bind()

Nazwa funkcji : bind()

Zwracana wartość: intW przypadku błędu funkcja zwraca SOCKET_ERROR z kodem który można uzyskać wywołując metodę WSAGetLastError(), w przeciwnym przypadku zwaraca zero.

Argumenty : SOCKET s, const struct sockaddr* name, int namelen

s - [in] Obiekt identyfikujący niepołączone gniazdo (unbound socket).name - [in] Adres IP do przypisania do gniazda (brany ze struktury SOCKADDR).namelen - [in] Długość (w bajtach) wartości parametru name.

Opis : Funkcja kojarzy adres lokalny hosta z gniazdem.

Specyfikacja funkcji listen()

2

Page 3: Funkcje gniazd

Nazwa funkcji : listen()

Zwracana wartość: intJeśli nie ma błędów funkcja listen() zwraca zero. W pozostałych przypadkach zwracana jest wartość SOCKET_ERROR. Kod błędu moŜna uzyskać wywołując funkcję WSAGetLastError().

Argumenty : SOCKET s, int backlog

s - [in] Obiekt identyfikujący połączone (bound), nierozłączone (unconnected) gniazdo.backlog - [in] Maksymalna długość kolejki czekających połączeń. Jeżeli wartość parametru jest ustawiona na SOMAXCONN, serwer ustawia wartość tego parametru na maksymalnym,ale ‘rozsądnym’ poziomie. Nie ma standardowej procedury określania wartości tego parametru.

Opis : Funkcja listen() ustawia gniazdo w stan nasłuchiwania.

Specyfikacja funkcji accept()

Nazwa funkcji : accept()

Zwracana wartość: SOCKETJeżeli nie ma błędu funkcja accept() zwraca typ SOCKET. Zwrócona wartość jest uchwytem do gniazda do którego jest tworzone połączenie.W pozostałych przypadkach jest zwracana wartości INVALID_SOCKET. Kod błędu można uzyskać wywołując funkcję WSAGetLastError().

Argumenty : SOCKET s, struct sockaddr* addr, int* addrlen

s - [in] Obiekt identyfikujący gniazdo, które przeszło w stan nasłuchiwania poprzez wywołanie funkcji listen().addr - [out] Parametr opcjonalny, wskaźnik do bufora, który przechowuje adres łączącego się hosta. Format parametru addr jest wyznaczany na podstawie wartości parametru sa_family ze struktury SOCKADDR.addrlen - [out] Opcjonalny wskaźnik do liczby zawierającej długość parametru addr.

Specyfikacja funkcji gethostbyname()

Nazwa funkcji : gethostbyname()

3

Page 4: Funkcje gniazd

Zwracana wartość: struct hostent* FAR

Argumenty : const char* namename - [in] Wskaźnik do zakończonej zerem nazwy hosta (odbiorcy danych).

Opis : Funkcja gethostbyname() pobiera nazwę hosta z bazy hosta Zamiast gethostbyname() zalecane jest używanie funkcji getaddrinfo().

Specyfikacja funkcji connect()

Nazwa funkcji : connect()

Zwracana wartość: int

Argumenty : SOCKET s, const struct sockaddr* name, int namelens - [in] Obiekt identyfikujący niepołączone gniazdo.name - [in] Nazwa gniazda w strukturze SOCKADDR do którego powinno być zrealizowane połączenie.namelen - [in] Długość nazwy gniazda (liczona bajtach).

Opis : Funkcja buduje połączenie do określonego gniazda.

Specyfikacja funkcji closesocket()

Nazwa funkcji : closesocket()

Zwracana wartość: intArgumenty : SOCKET ss [in] Obiekt określający gniazdo do zamknięcia.

Opis : Funkcja closesocket() zamyka gniazdo.

4