我正在重写Golang中的一个Windows服务(C#)。我几乎已经想出并重写了Go中的代码,但却陷入了一个我无法弄清楚golang替代方案的地方。
public static int GetNumberOfLocalEstablishedConnectionsByPort(string IPAddress, int Port)
{
int Result = 0;
IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] tcpConnections = ipProperties.GetActiveTcpConnections();
foreach (TcpConnectionInformation tcpInfo in tcpConnections)
{
if (tcpInfo.State == TcpState.Established && tcpInfo.LocalEndPoint.Port == Port)
{
Result++;
}
}
return Result;
}
基本上在这种方法中,我找到了基于IP地址和端口的活动连接数。
我正在寻求帮助,以便了解如何将此C#代码重写为Golang。我正在使用Windows操作系统并想要一个基于 Windows操作系统
的解决方案答案 0 :(得分:0)
为了找到活动连接的数量,C#
中没有与上述Golang
方法类似的等效包装器。
虽然我们可以使用系统调用实现此目的,但如果您是Linux用户,我们可以使用以下命令。
netstat -anp | grep :80 | grep ESTABLISHED | wc -l
但是,在windows os中,您可能会遇到一些问题,因为grep
和wc
(字数统计)命令不起作用。当我将它作为Windows服务运行时,我遇到了这个问题。
对于Windows操作系统,以下命令有效。
netstat -nt | findstr :80 | findstr ESTABLISHED | find /v /c ""
要使/ v / c正常工作,您可能需要以管理员身份执行exe文件