0

我正在开发通过套接字与外部程序通信的 Firefox 插件。当这个插件需要它时,这个程序在指定的端口上创建本地套接字服务器。我想从这个插件中检查这个应用程序是否已经打开了这个端口。

在 Win7 上,当尚未创建服务器时,我收到由 nsIRequestObserver::onStopRequest 中的插件 NS_ERROR_CONNECTION_REFUSED 创建的套接字,但是如果我在收到此错误时能感觉到某些端口未打开?

4

2 回答 2

3

您尝试连接并查看连接是否成功。如果没有,则端口不可访问(打开)。这是最明显和最简单的答案。

其他低级解决方案需要以某种方式轮询操作系统本身。这将是跨平台特定的(因此您需要为每个平台编写一个实现)并且没有现成的 API,因此您必须弄乱 C/C++ 或至少 js-ctypes,或者将一些丑陋的“执行这个程序并检查输出”的东西。所有这些都不值得。

于 2013-08-13T15:10:23.690 回答
2

如果您想找出 Windows 中正在使用哪些“入站端口”,您可以使用 cmd,

如果您不知道如何打开 cmd - 按 windows-key+r 打开运行对话框。输入 cmd 并回车

键入netstat -a并按回车键,它将列出所有“侦听”端口。

更多信息 - http://www.techrepublic.com/blog/it-security/list-open-ports-and-listening-services/

于 2013-08-13T12:44:13.480 回答