Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy
počítačové znalosti >> Systémy >> unix >> .

Čo sú možnosti soketu v UNIX?

Možnosti soketu v UNIX sú parametre, ktoré riadia správanie soketu. Umožňujú vám doladiť rôzne aspekty sieťovej komunikácie, ako je úroveň kontroly chýb, spôsob prenášania údajov a celkový výkon vašej aplikácie. Tieto možnosti sa nastavujú pomocou systému `setSockopt ()` System Call a získané pomocou `getsockopt ()`.

Možnosti zásuvky sú usporiadané podľa *úrovní *a *mená *. Úroveň určuje vrstvu protokolu, na ktorú sa voľba uplatňuje, zatiaľ čo názov identifikuje konkrétnu možnosť v rámci tejto úrovne. Bežné úrovne zahŕňajú:

* `sol_socket`: Táto úroveň sa vzťahuje na všetky typy zásuviek. Možnosti na tejto úrovni ovplyvňujú všeobecné správanie soketu. Príklady zahŕňajú:

* `So_reuseaddr`: Umožňuje väzbu na port, ktorý je už v stave Time_wait. Užitočné pre servery, ktoré sa musia rýchlo reštartovať.

* `So_reusePort`: Umožňuje viacerým procesom viazať sa na rovnakú adresu a port. Užitočné na vyváženie záťaže a zoskupovanie servera.

* `So_broadcast`: Umožňuje odosielanie vysielacích správ.

* `So_keePalive`: Umožňuje sondy na nažive na detekcii rozbitých pripojení.

* `So_linger`: Ovláda, ako sa soket správa pri zatvorení. Umožňuje pôvabné vypnutie alebo okamžité uzavretie.

* `So_sndbuf` a` So_rcvbuf`: Nastavte veľkosti vyrovnávacej pamäte odoslania a prijímania. Úprava ich môže zlepšiť výkon.

* `So_error`: Získava sa čakám na chybové podmienky na zásuvke.

* `ipproto_ip`: Táto úroveň sa vzťahuje na zásuvky IPv4. Možnosti ovplyvňujú, ako vrstva IP spracováva pakety. Príklady zahŕňajú:

* `ip_tos`: Nastavuje typ bitov služby (TOS) v hlavičke IP. Používa sa na úvahy o kvalite služieb (QoS).

* `ip_ttl`: Nastavuje čas na život (TTL), ktorá obmedzuje životnosť paketu.

* `ipproto_ipv6`: Táto úroveň je podobná ako „ipproto_ip`, ale pre zásuvky IPv6. Mnoho možností je analogických s ich náprotivkami IPv4.

* `ipproto_tcp`: Táto úroveň sa vzťahuje na zásuvky TCP. Možnosti tu ovládajte správanie špecifické pre TCP. Príklady zahŕňajú:

* `tcp_nodelay`: Zakáže algoritmus Nagle, ktorý pred odoslaním vyrovnáva malé pakety. Užitočné pre interaktívne aplikácie, ale môže znížiť účinnosť hromadných prevodov.

* `ipproto_udp`: Táto úroveň sa vzťahuje na zásuvky UDP. Možnosti sú tu relatívne málo v porovnaní s TCP.

Príklad (c):

Tento príklad ukazuje, ako nastaviť možnosť `So_reuseaddr` pomocou` setSockopt () `:

`` C

#include

#include

#include

#include

#include

#include

#include

int main () {

int sockfd;

struct socaddr_in serv_addr;

int opt ​​=1; // na povolenie So_reuseaddr

sockfd =socket (af_inet, sock_stream, 0);

if (sockfd <0) {

Perror („Socket otvárania chýb“);

Výstup (1);

}

if (setSockopt (sockfd, sol_socket, So_reuseaddr, &opt, sizeof (opt)) <0) {

Perror („SetSockopt zlyhal“);

Výstup (1);

}

// ... Zvyšok vášho soketového kódu ...

Close (Sockfd);

návrat 0;

}

`` `

Tento útržok kódu vytvorí soket TCP a nastaví možnosť „So_reuseaddr`. Zahrnuté je spracovanie chýb, ktoré zobrazujú osvedčené postupy. Nezabudnite sa poradiť s manuálnymi stránkami vášho systému („Man 7 Socket`), kde nájdete kompletný zoznam dostupných možností soketu a ich použitie. Dostupnosť a správanie konkrétnych možností sa môžu mierne líšiť v závislosti od operačného systému a verzie jadra.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené