小编lni*_*cal的帖子

程序退出后,TcpListener套接字仍处于活动状态

当我的程序退出时,我正在尝试停止TCP侦听器.我不关心套接字或任何活动客户端套接字上当前活动的任何数据.

套接字清理代码基本上是:

try
{
    myServer.Server.Shutdown(SocketShutdown.Both)
}
catch (Exception ex)
{
     LogException(ex)
}
myServer.Server.Close(0)
myServer.Stop()
Run Code Online (Sandbox Code Playgroud)

myServer是一个TCPListener

在某些情况下,Shutdown会抛出异常

System.Net.Sockets.SocketException:不允许发送或接收数据的请求,因为没有连接套接字(当使用sendto调用在数据报套接字上发送时)System.Net.Sockets.Socket.Shutdown没有提供地址(SocketShutdown如何)

编辑2010年5月14日

经过进一步调查,可以抛出异常并正确关闭套接字.

有时,即使应用程序退出netstat后,套接字仍处于LISTENING状态.

我无法创建明确的再现场景,它发生在看似随机的时间.

客户端套接字是独立清理的.

你有什么建议帮我把这个插座呀?

c# sockets

12
推荐指数
1
解决办法
8248
查看次数

标签 统计

c# ×1

sockets ×1