首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Socket.Shutdown与线程

Socket.Shutdown与线程
EN

Stack Overflow用户
提问于 2014-07-01 18:31:04
回答 1查看 570关注 0票数 2

我对套接字编程很陌生。我们的应用程序使用套接字与我们公司生产的设备进行通信。我们的插座有问题,有时需要很长时间才能关闭。

下面是关闭套接字时运行的代码:

代码语言:javascript
运行
复制
if (client != null) {
    try {
        if (client.Connected) {
            client.Disconnect(false);
            client.Shutdown(SocketShutdown.Both);
        }

        client.Close();
    } catch (SocketException) {
    }

    client = null;
}

我读过“ method”和“the responses to this question”,我很困惑。是否将任何正在等待从远程系统传输到此系统的数据(反之亦然)被传输或放弃?如果正在等待传输的数据被放弃,什么可以延迟套接字的关闭?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-01 21:55:29

在关闭之前调用Shutdown,这样您就可以确保所有排队的数据实际上都收到了。

不要调用Disconnect。为什么有必要这样做?没什么原因。在关闭之前,这尤其是错误的。想想这是否有意义。

DisposeClose之后调用Shutdown以释放所有操作系统资源。现在连接已经可靠地关闭了。

不要吞下SocketException。你为什么要这么做?你永远不会发现你发送的数据没有收到。

我们的插座有问题,有时需要很长时间才能关闭。

怎么又知道了?这是什么症状?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24517045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档