我想通过C套接字编写一个简单的小型C++ RAII封装。RAII套接字:何时发布(关闭)
问题是什么状态是一个套接字被考虑初始化(从RAII的角度来看),因此符合发布条件。
例如,对于TCP客户端套接字:如果socket
调用成功,但connect
调用失败,应该调用close
?
这只是一个例子,我感兴趣的是一个笼统的回答,是这样的:
- 通过
socket
成功创建每个插座都必须关闭。
或 - 必须关闭每个
connect
,listen
或accept
。
的手册页socket
&朋友和close
也不是很清楚(或至少对我来说)。
如果您有一个有效的/活动的套接字句柄,那么它已被初始化。 –
@CaptainObvlious何时套接字句柄被视为vaid/active? – bolov
套接字句柄在'socket'或'accept'返回一个非INVALID_SOCKET的值并且关闭句柄之前是有效的。 –