我想通過C套接字編寫一個簡單的小型C++ RAII封裝。RAII套接字:何時發佈(關閉)
問題是什麼狀態是一個套接字被考慮初始化(從RAII的角度來看),因此符合發佈條件。
例如,對於TCP客戶端套接字:如果socket
調用成功,但connect
調用失敗,應該調用close
?
這只是一個例子,我感興趣的是一個籠統的回答,是這樣的:
- 通過
socket
成功創建每個插座都必須關閉。
或 - 必須關閉每個
connect
,listen
或accept
。
的手冊頁socket
&朋友和close
也不是很清楚(或至少對我來說)。
如果您有一個有效的/活動的套接字句柄,那麼它已被初始化。 –
@CaptainObvlious何時套接字句柄被視爲vaid/active? – bolov
套接字句柄在'socket'或'accept'返回一個非INVALID_SOCKET的值並且關閉句柄之前是有效的。 –