java如何读取本机端口的信息,如开放了哪些端口,端口的连接数现在是多少? 如题,有没有第三方的包可以用

不要让我在CMD中用netstat,再载取输入这样的话换操作系统怎么办,那样违背了java的跨平台性了... 不要让我在CMD中用netstat,再载取输入
这样的话换操作系统怎么办,那样违背了java的跨平台性了
展开
 我来答
bd9006
2012-01-20 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
多线程扫描
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友845f74e61
2012-01-20 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1618万
展开全部
又看到你这个问题了,上一个不是我不回,是百度不让我回,记得给你发百度消息了,没收到你的回复。

先说一下java的跨平台性
我觉得你的理解有误,java的跨平台性并不是说java的程序到那里都是好用的,而是在安装了JVM的平台上可运行。
就拿File类来说吧
File file = new File("C:\\tmp.txt");
File file = new File("/home/tmp.txt");
这就是两个平台下的不同,你怎么来保证,不做处理的情况下,换平台就好用呢?

所以用平台命令这个也是要处理,判断OS,从Java的System类中可以得到你当前的OS是什么。
所以你说的有违 java的跨平台性 我觉得是不对的。
java的跨平台性 是指那些标分准类库,而不是个人创建 的应用。
而且Java的File就不具备设置文件的属性的能力,就是因为考虑到平能的兼容性。所以放弃了这一功能。
个人创建的应用程序。要想平台兼容都是自己来做处理一些内容。

就本问题来说,如果你不想用平台命令,那可以换一个方法。
用socket类
下边是用socket来连接指定端口,来判断端口是否打开。
要注意的是如果扫描的端口过多,需要扩一下JVM内存,否则很容易因数线程创建过多堆栈溢出。
不用循环,是因为遇到没有打开的端口中,连接处理很费时,远没有线程处理来的快。
有多少个连接,这个方法还没找到。

import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class ScanPort {

public static void main(String[] args) {
List result = new ArrayList();
for (int port = 1; port <= 1024; port++) {
new Scan("127.0.0.1", port, result).start();
}
}
}

class Scan extends Thread {

private String ip = null;
private int port = 0;
private List result = null;

public Scan(String ip, int port, List result) {
this.ip = ip;
this.port = port;
this.result = result;
}

public void run() {
try {
Socket socket = new Socket(ip, port);
socket.close();
result.add(port);
System.out.println(port + " -> open");
} catch (Exception e) {
System.out.println(port + " -> close");
}
}
}
追问
那如果我想知道本机的6W多个端口的连接数情况呢,各个端口的连接数是多少。
socket我知道,你这段代码只能检测本机开了什么端口。

而且我的需求更加危峻,就是每隔一个短的时间(例如10秒)就要将所有开放了的端口和端口的连接数多少返回给程序。不断循环
追答
有多少个连接,这个方法还没找到。
------------------------------------------------------------------------------

而且我的需求更加危峻,就是每隔一个短的时间(例如10秒)就要将所有开放了的端口和端口的连接数多少返回给程序。不断循环

这个可以做个定时任务来做处理。

------------------------------------------------------------------------------

再看看怎么看连接数
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式