禁用某 Socket 上的发送和接收。
public:
void Shutdown(System::Net::Sockets::SocketShutdown how);
public void Shutdown(System.Net.Sockets.SocketShutdown how);
member this.Shutdown : System.Net.Sockets.SocketShutdown -> unit
Public Sub Shutdown (how As SocketShutdown)
参数
how
SocketShutdown
SocketShutdown 值之一,它指定不再允许执行的操作。
例外
SocketException
尝试访问套接字时出错。
ObjectDisposedException
Socket 已关闭。
示例
下面的代码示例使用 Shutdown 禁用 Socket。
try
{
aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
aSocket.Close();
}
Try
aSocket.Shutdown(SocketShutdown.Both)
Finally
aSocket.Close()
End Try
End Sub
注解
使用面向Socket连接的 时,始终在关闭 Socket之前调用 Shutdown 方法。 这可确保在已连接的套接字上发送和接收所有数据,然后再将其关闭。
Close调用 方法以释放与 Socket关联的所有托管和非托管资源。 不要在关闭后尝试重用 Socket 。
下表显示了 SocketShutdown 对 how 参数有效的枚举值。
“值”
描述
发送
在此 Socket上禁用发送。
接收
在此 Socket上禁用接收。
两者
在此 Socket上禁用发送和接收。
将 设置为 howSend 指定不允许对 的后续调用 Send 。 如果使用无 Socket连接 ,则 Send 指定将不起作用。
将 设置为 howReceive 指定不允许对 的后续调用 Receive 。 这对较低的协议层没有影响。 如果使用面向连接的协议,则在调用 Shutdown 后存在以下任一条件时,连接将终止:
数据位于等待接收的传入网络缓冲区中。
更多数据已到达。
如果使用无连接协议,则接受数据报并排队。 但是,如果没有缓冲区空间可用于其他传入数据报,它们将被丢弃,并且不会向发送方返回错误。
Shutdown不建议在无Socket连接上使用。
将 设置为 howBoth 将禁用如上所述的发送和接收。
注意
如果在调用 Shutdown 方法时收到 SocketException ,请使用 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,请参阅 Windows 套接字版本 2 API 错误代码 文档,了解错误的详细说明。
备注
当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。
适用于
另请参阅
Close()
SocketShutdown