Adakah sambungan menyekat?
Adakah sambungan menyekat?

Video: Adakah sambungan menyekat?

Video: Adakah sambungan menyekat?
Video: Partisi Ruangan Tidak Sempitkan Ruangan dan Multi Fungsi 2024, April
Anonim

menyambung ialah menyekat panggilan secara lalai, tetapi anda boleh menjadikannya bukan menyekat dengan menghantar ke soket bendera SOCK_NONBLOCK. menyambung () menghalang sehingga menamatkan TCP 3-hala jabat tangan. Jabat tangan pada bahagian mendengar dikendalikan oleh susunan TCP/IP dalam kernel dan selesai tanpa memberitahu proses pengguna.

Begitu juga ditanya, apakah soket blocking dan non blocking?

Dalam menyekat mod, recv, hantar, sambung (TCP sahaja) dan terima (TCP sahaja) soket Panggilan API akan blok selama-lamanya sehingga tindakan yang diminta telah dilakukan. Dalam bukan - menyekat mod, fungsi ini kembali serta-merta. pilih kehendak blok sehingga soket sudah bersedia.

apakah fungsi menyekat? A fungsi menyekat pada asasnya mengira selama-lamanya. Itulah maksudnya menyekat . Lain-lain fungsi menyekat akan menunggu IO berlaku. bukan menyekat Sistem IO bermaksud a fungsi memulakan tindakan IO, kemudian melahu kemudian mengendalikan hasil tindakan IO apabila ia berlaku.

Seterusnya, persoalannya ialah, adakah soket menerima menyekat?

terima () menyekat pemanggil sehingga sambungan hadir. Jika tiada ruang mesej tersedia di soket untuk menahan mesej yang akan dihantar, kemudian send() biasanya disekat. Jika tiada mesej tersedia di soket , panggilan recv menunggu mesej tiba.

Adakah pilih blok?

Jika hujah tamat masa menunjuk kepada objek jenis struct timeval yang ahlinya ialah 0, pilih () tidak blok . Jika hujah tamat masa ialah NULL, pilih () menyekat sehingga peristiwa menyebabkan salah satu topeng dikembalikan dengan nilai yang sah (bukan sifar).

Disyorkan: