Este blocarea conexiunii?
Este blocarea conexiunii?

Video: Este blocarea conexiunii?

Video: Este blocarea conexiunii?
Video: Blocarea conexiunii de internet a aplicaţiilor 2024, Aprilie
Anonim

conectați este o blocare apel în mod implicit, dar îl puteți face ca non blocare prin trecerea la socket a steagului SOCK_NONBLOCK. conectați () se blochează până la terminarea strângerii de mână TCP 3-way. Strângerea de mână pe partea de ascultare este gestionată de stiva TCP/IP din kernel și se termină fără notificarea procesului utilizatorului.

În mod similar, se întreabă, ce este soclul blocant și neblocant?

În blocare modul, recv, send, connect (numai TCP) și accepta (numai TCP) priză Apelurile API vor bloc pe termen nelimitat până la îndeplinirea acţiunii solicitate. În non - blocare modul, aceste funcții revin imediat. selectați voința bloc pană la priză este gata.

ce este o functie de blocare? A functie de blocare practic calculează pentru totdeauna. Asta înseamnă blocare . Alte funcții de blocare ar aștepta ca IO să apară. un non- blocare Sistem IO înseamnă a funcţie începe o acțiune IO, apoi rămâne inactiv, apoi se ocupă de rezultatul acțiunii IO atunci când se întâmplă.

Ulterior, întrebarea este dacă socket acceptă blocarea?

Accept () blochează apelantul până când este prezentă o conexiune. Dacă nu este disponibil spațiu pentru mesaje la priză pentru a reține mesajul de transmis, apoi send() se blochează în mod normal. Dacă nu sunt disponibile mesaje la priză , apelul recv așteaptă sosirea unui mesaj.

Selectați un bloc?

Dacă argumentul timeout indică un obiect de tip struct timeval ai cărui membri sunt 0, Selectați () nu bloc . Dacă argumentul timeout este NULL, Selectați () se blochează până când un eveniment face ca una dintre măști să fie returnată cu o valoare validă (diferită de zero).

Recomandat: