Bloklanmayan rozetkalar nədir?
Bloklanmayan rozetkalar nədir?

Video: Bloklanmayan rozetkalar nədir?

Video: Bloklanmayan rozetkalar nədir?
Video: 100%işleyan vpn windows 7,8,10 hiç haçan bloklanmayan vpn 2024, Bilər
Anonim

yox - bloklayan rozetkalar . Bu problemin həlli adlanır " yox - bloklayan rozetkalar ". Varsayılan olaraq, TCP rozetkalar var" bloklama " rejimi. Məsələn, siz axından oxumaq üçün recv() funksiyasına zəng etdiyiniz zaman uzaq saytdan ən azı bir bayt məlumat oxunana qədər nəzarət proqramınıza qaytarılmır.

Buna görə bloklayan və bloklanmayan rozetka nədir?

In bloklama rejimi, recv, göndərin, qoşulun (yalnız TCP) və qəbul edin (yalnız TCP) rozetka API zəngləri olacaq blok tələb olunan hərəkət yerinə yetirilənə qədər qeyri-müəyyən müddətə. In yox - bloklama rejimində, bu funksiyalar dərhal geri qayıdır. iradə seçin blok qədər rozetka hazırdır.

Bir də soruşa bilər ki, rozetkalar standart olaraq bloklanırmı? By default , TCP rozetkalar a yerləşdirilir bloklama rejimi. Bu o deməkdir ki, bəzi xüsusi əməliyyatlar tamamlanana qədər nəzarət proqramınıza qaytarılmır.

Bununla əlaqədar olaraq, bloklanmayan rozetkanı necə etmək olar?

işarələmək üçün a rozetka kimi yox - bloklama , biz fcntl sistem çağırışından istifadə edirik. Budur bir nümunə: int flags = guard(fcntl(socket_fd, F_GETFL), "fayl bayraqları əldə edilə bilmədi"); qoruyucu(fcntl(socket_fd, F_SETFL, bayraqlar | O_NONBLOCK), "olmadı təyin edin fayl bayraqları");

Soket bloklanması nədir?

A rozetka ola bilər" bloklama rejimi " və ya "bloklanmayan rejimi ." Funksiyaları rozetkalar in bloklama (və ya sinxron) rejimi hərəkətlərini tamamlayana qədər geri qayıtmayın. Buna deyilir bloklama Çünki rozetka funksiyası çağırılan heç bir şey edə bilməz - bloklanır - zəng geri qayıdana qədər.

Tövsiyə: