Engellenmeyen soketler nelerdir?
Engellenmeyen soketler nelerdir?

Video: Engellenmeyen soketler nelerdir?

Video: Engellenmeyen soketler nelerdir?
Video: Elektrik Devre Elemanları Nelerdir? Sembolleri Nasıldır? 2024, Mayıs
Anonim

olmayan - soketleri engelleme . Bu sorunun çözümünün adı " olmayan - soketleri engelleme ". Varsayılan olarak, TCP prizler var" engelleme " modu. Örneğin, bir akıştan okumak için recv()'i çağırdığınızda, uzak siteden en az bir bayt veri okunana kadar kontrol programınıza döndürülmez.

Buna göre bloke eden ve bloke etmeyen soket nedir?

İçinde engelleme modu, recv, gönder, bağlan (yalnızca TCP) ve kabul (yalnızca TCP) priz API çağrıları engellemek İstenen eylem gerçekleştirilinceye kadar süresiz olarak. İçinde olmayan - engelleme modunda, bu işlevler hemen geri döner. irade seç engellemek e kadar priz hazır.

Bir de sorabilir, soketler varsayılan olarak engelliyor mu? Tarafından varsayılan , TCP prizler bir yerleştirilir engelleme modu. Bu, belirli bir işlem tamamlanana kadar kontrolün programınıza döndürülmediği anlamına gelir.

Bununla ilgili olarak, bloke olmayan bir soket nasıl yapılır?

işaretlemek için priz olarak olmayan - engelleme , fcntl sistem çağrısını kullanıyoruz. İşte bir örnek: int flags = guard(fcntl(socket_fd, F_GETFL), "dosya bayrakları alınamadı"); guard(fcntl(socket_fd, F_SETFL, bayraklar | O_NONBLOCK), "olamadı Ayarlamak dosya bayrakları");

Soket engelleme nedir?

A priz olabilir" engelleme modu " veya "engelsiz mod " işlevleri prizler içinde engelleme (veya senkron) mod eylemlerini tamamlayana kadar geri dönmeyin. buna denir engelleme Çünkü priz işlevi çağrılan kişi hiçbir şey yapamaz - engellenir - çağrı dönene kadar.

Önerilen: