如何使用代码删除 tcp / udp 连接?

Posted

技术标签:

【中文标题】如何使用代码删除 tcp / udp 连接?【英文标题】:How to drop tcp / udp connection using code? 【发布时间】:2021-10-18 12:40:25 【问题描述】:

我目前正在使用 .net 核心,并且希望能够删除主机上打开的一些 tcp 和/或 udp 连接。

我已经建立了检查打开连接的所有逻辑,我现在只需要找到一些资源来帮助我在机器上断开连接。

在 Windows 中,我可以使用第三方程序在初始化期间传递一些参数。但是我需要它在 linux 机器上工作。

Windows 解决方案 = http://www.nirsoft.net/utils/cports.html

【问题讨论】:

如果连接的进程被杀死,连接将被删除。 【参考方案1】:

网络连接是非托管资源的一个非常常见的例子,它必须是disposed off。我们放弃 SQL 连接的一个重要原因是底层网络连接。

在处理可处置类时,我的建议是:“创建、使用、处置。全部在同一段代码中,最好使用 using statement。”

请注意,对于网络,您通常必须应用某种形式的多任务处理。 Async/Await 是更现代的方法,但也可以使用单独的线程。这可以防止 UI 线程被阻塞,同时仍然确保使用不会在逻辑上拆分 - 从而保持可靠。

【讨论】:

你好克里斯托弗。我明白。但是,连接不是由我建立的。是我服务器的第三方。我想关闭这些连接,因为我遇到了恶意连接问题。 @GustavoFonseca 我对此的一个回答是:不要! 绕过并关闭操作系统上其他程序的随机网络连接?那是病毒行为!也许如果这是旨在提供网络管理员支持的程序的唯一目的 - 它仍然是粗略的,但至少是主题。

以上是关于如何使用代码删除 tcp / udp 连接?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 android 中连接 SSH 隧道 tcp/udp

如何通过 Windows API GetExtendedTCpTable 检测新的 TCP 连接

TCP与UDP,可靠UDP如何实现

如何实现TCP和UDP传输

网络协议 TCP和UDP可靠性传输

TCP和UDP通信有啥区别 如何分别用java实现?