You are on page 1of 4

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().

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łączonego
funkcją bind() (bound socket).

Specyfikacja funkcji send()


1
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ść: int


W 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
Nazwa funkcji : listen()

Zwracana wartość: int


Jeś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ść: SOCKET


Jeż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
Zwracana wartość: struct hostent* FAR

Argumenty : const char* name


name - [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 namelen


s - [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ść: int


Argumenty : SOCKET s
s [in] Obiekt określający gniazdo do zamknięcia.

Opis : Funkcja closesocket() zamyka gniazdo.

You might also like