Blokkerer tilkoblingen?
Blokkerer tilkoblingen?

Video: Blokkerer tilkoblingen?

Video: Blokkerer tilkoblingen?
Video: Top 5 Website Blocker Software in 2022 (Windows/Android/iPhone/Mac) 2024, Mars
Anonim

koble er en blokkering ringe som standard, men du kan gjøre det ikke blokkering ved å sende SOCK_NONBLOCK-flagget til socket. koble () blokkerer til ferdig TCP 3-veis håndtrykk. Håndtrykk på lyttesiden håndteres av TCP/IP-stakk i kjernen og avsluttes uten å varsle brukerprosessen.

På samme måte blir det spurt, hva er blokkerende og ikke-blokkerende stikkontakt?

I blokkering modus, recv, send, koble til (kun TCP) og godta (kun TCP) stikkontakt API-kall vil blokkere på ubestemt tid til den forespurte handlingen er utført. I ikke - blokkering modus, returnerer disse funksjonene umiddelbart. velge vilje blokkere til stikkontakt er klar.

hva er en blokkeringsfunksjon? EN blokkeringsfunksjon i utgangspunktet beregner for alltid. Det er det det betyr blokkering . Annen blokkerende funksjoner ville vente på at IO skulle skje. en ikke- blokkering IO-system betyr en funksjon starter en IO-handling, går deretter inaktiv og håndterer resultatet av IO-handlingen når den skjer.

Spørsmålet er deretter om socket aksepterer blokkering?

aksepterer () blokkerer den som ringer inntil en forbindelse er til stede. Hvis ingen meldinger er ledig plass på stikkontakt for å holde meldingen som skal overføres, så blokkerer send() normalt. Hvis ingen meldinger er tilgjengelig på stikkontakt , venter anropet på at en melding kommer.

Er velg en blokk?

Hvis timeout-argumentet peker på et objekt av typen struct timeval hvis medlemmer er 0, plukke ut () gjør ikke blokkere . Hvis timeout-argumentet er NULL, plukke ut () blokkerer til en hendelse fører til at en av maskene returneres med en gyldig (ikke-null) verdi.

Anbefalt: