Voglio scrivere un wrapper C++ RAII semplice e piccolo su un socket C.Prese RAII: quando rilasciare (chiuso)
La domanda è in quale stato è un socket considerato inizializzato (dal punto di vista di RAII) e quindi idoneo per il rilascio.
Ad esempio, per un socket client TCP: se la chiamata socket
ha esito positivo, ma la chiamata connect
non è riuscita, è necessario chiamare close
?
Questo è solo un esempio, io sono interessato a una risposta generale, qualcosa di simile:
- Ogni socket creato con successo da
socket
deve essere chiuso.
o - Ci deve essere una chiusura per ogni
connect
,listen
oaccept
.
Le pagine man per socket
& amici e close
non sono molto chiare (o almeno a me).
Se si dispone di un handle di socket valido/attivo, è stato inizializzato. –
@CaptainObvlious Quando un handle del socket è considerato vaid/active? – bolov
L'handle del socket è valido quando 'socket' o' accept' restituiscono un valore diverso da 'INVALID_SOCKET' e finché non si chiude l'handle. –