gpt4 book ai didi

c# Sure Fire 检测端口使用情况的方法

转载 作者:可可西里 更新时间:2023-11-01 02:37:49 27 4
gpt4 key购买 nike

最近在这方面来来回回。尝试使用 Putty 将 SSH 隧道从我机器上的本地主机端口附加到可访问 Internet 的 SSH 服务器另一端的内部端口。 Putty 不会检查端口是否可用。在打开 Putty 连接之前,我想验证端口是否可用。

如果端口可用,它工作正常,但我需要一个可靠的方法来保证在我检查我的代码时端口没有打开。我用过各种方法,但效果不佳。我目前正在使用以下代码:

    bool IsBusy(int port)
{
IPGlobalProperties ipGP = IPGlobalProperties.GetIPGlobalProperties();
IPEndPoint[] endpoints = ipGP.GetActiveTcpListeners();
if (endpoints == null || endpoints.Length == 0) return false;
for (int i = 0; i < endpoints.Length; i++)
if (endpoints[i].Port == port)
return true;
return false;
}

我在电脑上安装了 uTorrent。当我尝试使用端口 3390 时,它失败了,因为 uTorrent 正在通过 TCP 监听该端口。有没有办法确保给定端口上根本没有使用 TCP?

最佳答案

如果您正在检查一个程序并希望在另一个程序中使用该端口,那么总会出现竞争条件。如果您在一个程序中执行所有操作,您可以创建一个套接字并绑定(bind)到端口 0,系统将为您选择一个空闲端口,这样您就永远不会与另一个进程发生冲突。

关于c# Sure Fire 检测端口使用情况的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3101684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com