• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#socket服务端判断连接状态

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
                foreach (var dic in sockets)
                {
                    if (dic.Value.Poll(1000, SelectMode.SelectRead))
                    {
                        dic.Value.Close();//关闭socket
                        sockets.TryRemove(dic.Key, out Socket socket);

                        _logger.Warn($"IP:{dic.Key},客户端socket连接断开;");

                        continue;
                    }

                    _logger.Info($"IP:{dic.Key},客户端socket连接正常;");
                }

private ConcurrentDictionary<string, Socket> sockets = new ConcurrentDictionary<string, Socket>();确保线程安全 

主要是利用socket的poll方法来进行判断。

另外我试了下使用KeepAlive,发现不起作用。但是如果放在客户端使用的话,就会起作用。不知道为什么。

参考网址:https://www.cnblogs.com/cuisir/p/8522680.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
树状树组(BinaryIndexedTree(BIT))的C++部分实现发布时间:2022-07-14
下一篇:
(转)C++类所占内存大小计算发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap