当前位置: 首页 > news >正文

C# 解决TCP Server 关不掉客户端连接的问题

问题描述

拷贝了一段 TCP Server的应用代码,第一次运行正常,但是关闭软件或者实现disconnect+close后都无法关闭端口连接。

关闭之后,另外一个客户端还在正常与PC连接。

TCP Server 重新运行,无法接收到客户端的连接。

复现环境

1、 C#  .net界面程序

2、 .net 4.8.1

3、 System.Net.Sockets

4、 TcpListener 接口

解决办法

TcpServer 再关闭指定客户端的连接时,或者关闭服务器时,要先断开连接。

断开连接的方法分3步:

Shutdown(SocketShutdown.Both);//第一步

Disconnect(false);//第二步

Close();//第三步

结束。

百度了很多,,,没有人列出这3步,要么是只有1步,要么是只有两步。

不知道是坑人,还是环境不一致导致的,焯!

说明:

1、关闭指定客户端

如果客户端一直循环监听和连接,你关掉了还是会立即连上。

2、软件关闭时或者手动关闭服务器 

软件关闭时一定要关闭服务器,可以在 FormClosed 事件中添加处理。

而如果是手动关闭服务器,则要先断开与客户端的连接,然后再关闭服务器。

http://www.lryc.cn/news/99330.html

相关文章:

  • JS判断类型的方法和对应的局限性(typeof、instanceof和Object.prototype.toString.call()的用法)
  • mongostat跟踪Mongodb运行的状态
  • 华为数通HCIA-数通网络基础
  • 【设计模式】详解单例设计模式(包含并发、JVM)
  • 监控和可观察性在 DevOps 中的作用!
  • 论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks
  • 浏览器的同源策略 - 跨域问题
  • go 查询采购单设备事项[小示例]V2-两种模式{严格,包含模式}
  • c++11 标准模板(STL)(std::basic_filebuf)(八)
  • 行为型模式之解释器模式
  • 阿里云域名备案
  • Clion开发Stm32之温湿度传感器(DS18B20)驱动编写和测试
  • 文档管理NAS储存安全吗?
  • 用windeployqt.exe打包Qt代码
  • 【Python机器学习】实验04(2) 机器学习应用实践--手动调参
  • 【爬虫案例】用Python爬取iPhone14的电商平台评论
  • 01)docker学习 centos7离线安装docker
  • 前端 - 实习两个星期总结
  • MySQL——主从复制
  • 报表下载工具
  • 树及其遍历
  • Qt报错解决办法
  • Python(四十七)列表对象的创建
  • #systemverilog# 说说Systemverilog中《automatic》那些事儿
  • C/C++ 动态内存分配与它的指针变量
  • UE5初学者快速入门教程
  • 论文笔记--FEDERATED LEARNING: STRATEGIES FOR IMPROVING COMMUNICATION EFFICIENCY
  • STM32MP157驱动开发——按键驱动(异步通知)
  • 医疗器械维修工程师心得
  • Vue3 Radio单选切换展示不同内容