CAsyncSocket::ShutDown

BOOL ShutDown( int nHow = sends );

返回值: 调用成功时返回非零值,否则为0,并且可以调用GetLastError取得特定的错误代码。此成员函数可用的错误代码有:
·WSANOTINITIALISED在调用本API函数之前,必须已经成功地执行AfxSocketInit。
·WSAENETDOWNWindows Sockets检测到网络系统故障。
·WSAEINVAL参数nHow的值无效。
·WSAEINPROGRESS正在执行一个成块的Windows Sockets操作。
·WSAENOTCONN套接字没有连接上(仅用于SOCK_STREAM型的套接字)。
·WSAENOTSOCK描述符不是一个套接字描述符。

参数:
nHow说明哪种类型的操作将被禁止的标志,可以使用以下的枚举值:
·receives = 0
·sends = 1
·both = 2

说明:
本函数用于在套接字上禁止发送和(或)接收数据。它可以用在任意类型的套接字上禁止接收、传输或者同时禁止接收和传输。如果nHow为0,将不允许在此套接字上接收数据。本函数的设置对低层协议没有影响。
对传输控制协议(TCP)来说,本函数不会改变TCP窗口,而且将一直接收输入数据(但不确认)直到窗口满。对用户数据报协议(UDP)来说,接收输入的数据报并且入队。任何时候都不会产生ICMP错误包。如果nHow为1,将不允许此后的数据发送。对TCP套接字来说,将会发送FIN。nHow为2时,将同时禁止数据发送和接收。
注意,ShutDown不会关闭套接字,在调用Call之前套接字占用的资源也不会释放。应用不应指望在调用ShutDown后利用套接字占用的资源。特别是,Windows Sockets的实现可以不支持这种套接字上的Connect调用。

请参阅:CAsyncSocket::Connect, CAsyncSocket::Create