Vai savienojums tiek bloķēts?
Vai savienojums tiek bloķēts?

Video: Vai savienojums tiek bloķēts?

Video: Vai savienojums tiek bloķēts?
Video: Tiek uzlabota Grīziņkalna infrastruktūra 2024, Novembris
Anonim

savienot ir bloķēšana zvanīt pēc noklusējuma, taču varat to nedarīt bloķēšana nododot ligzdai karogu SOCK_NONBLOCK. savienot () bloķē, līdz tiek pabeigts TCP trīsvirzienu rokasspiediens. Rokasspiedienu klausīšanās pusē apstrādā kodola TCP/IP steks, un tas tiek pabeigts, nepaziņojot lietotāja procesam.

Līdzīgi tiek jautāts, kas ir bloķējoša un nebloķējoša ligzda?

In bloķēšana režīms, recv, send, connect (tikai TCP) un pieņemšana (tikai TCP) kontaktligzda API zvani būs bloķēt uz nenoteiktu laiku, līdz tiek veikta pieprasītā darbība. In nav - bloķēšana režīmā šīs funkcijas atgriežas nekavējoties. izvēlieties gribu bloķēt līdz kontaktligzda ir gatavs.

kas ir bloķēšanas funkcija? A bloķēšanas funkcija būtībā aprēķina uz visiem laikiem. Tas ir tas, ko tas nozīmē bloķēšana . Cits bloķēšanas funkcijas gaidītu, kad IO notiks. ne- bloķēšana IO sistēma nozīmē a funkciju sāk IO darbību, pēc tam pāriet dīkstāvē un apstrādā IO darbības rezultātu, kad tas notiek.

Pēc tam rodas jautājums, vai ligzda pieņem bloķēšanu?

pieņemt () bloķē zvanītāju, līdz tiek izveidots savienojums. Ja nav pieejama vieta ziņojumiem kontaktligzda lai turētu pārsūtāmo ziņojumu, pēc tam send() parasti bloķē. Ja ziņojumi nav pieejami vietnē kontaktligzda , recv zvans gaida ziņojuma saņemšanu.

Vai izvēlieties bloku?

Ja taimauta arguments norāda uz struct timeval tipa objektu, kura locekļi ir 0, izvēlieties () nav bloķēt . Ja taimauta arguments ir NULL, izvēlieties () bloķē, līdz notikuma dēļ viena no maskām tiek atgriezta ar derīgu (nav nulles) vērtību.

Ieteicams: