La connessione è bloccante?
La connessione è bloccante?

Video: La connessione è bloccante?

Video: La connessione è bloccante?
Video: Elettropneumatica con FluidSIM: Logic Module e segnali bloccanti ( Video 2) 2024, Marzo
Anonim

Collegare è un blocco chiama per impostazione predefinita, ma puoi non farlo blocco passando al socket il flag SOCK_NONBLOCK. Collegare () blocchi fino al termine dell'handshake TCP a 3 vie. L'handshake sul lato di ascolto è gestito dallo stack TCP/IP nel kernel e terminato senza notificare il processo dell'utente.

Allo stesso modo, viene chiesto, cos'è il socket bloccante e non bloccante?

In blocco mode, recv, send, connect (solo TCP) e accetta (solo TCP) presa Le chiamate API lo faranno bloccare a tempo indeterminato fino all'esecuzione dell'azione richiesta. In non - blocco modalità, queste funzioni ritornano immediatamente. seleziona volontà bloccare fino al presa è pronto.

cos'è una funzione di blocco? UN funzione di blocco fondamentalmente calcola per sempre. Questo è ciò che significa blocco . Altro funzioni di blocco aspetterebbe che si verificasse IO. un non- blocco Sistema IO significa a funzione avvia un'azione IO, quindi diventa inattivo, quindi gestisce il risultato dell'azione IO quando si verifica.

Successivamente, la domanda è: il socket accetta il blocco?

accettare () blocca il chiamante fino a quando non è presente una connessione. Se non è disponibile spazio per i messaggi su presa per contenere il messaggio da trasmettere, quindi send() normalmente si blocca. Se nessun messaggio è disponibile al presa , la chiamata recv attende l'arrivo di un messaggio.

Selezionare un blocco?

Se l'argomento timeout punta a un oggetto di tipo struct timeval i cui membri sono 0, Selezionare () non bloccare . Se l'argomento timeout è NULL, Selezionare () si blocca finché un evento non fa sì che una delle maschere venga restituita con un valore valido (diverso da zero).

Consigliato: