当前位置:  开发笔记 > 编程语言 > 正文

创建大约65536个套接字的最快方法?

如何解决《创建大约65536个套接字的最快方法?》经验,为你挑选了1个好方法。

我拒绝接受这个问题只是因为你失败的选民不知道答案.

目标:让程序捕获每个UDP数据包,而不管目标端口如何.(我已完成此操作但需要10-15分钟才能加载)

现在我创建的插槽略小于65536个.它工作正常唯一的问题是最初创建它需要几分钟(很多分钟)

ArrayList receiveSocket = new ArrayList(65536);
int i = 65536;
while (i-- > 0) {
    //System.out.println(i);
    try {
        receiveSocket.add(new DatagramSocket(i, InetAddress.getByName("0.0.0.0")));
    } catch (Exception e) {
        continue;
    }
}

有没有办法让这个过程更快?遗憾的是,我不能只让单个插座窃取所有端口或创建这些插座,速度快七百倍......



1> Jason C..:

出于多种原因,请不要这样做,其中最重要的两个原因是性能不佳以及对系统资源和其他应用程序的干扰.

而是使用类似jpcap的东西,它专门用于有效捕获网络流量.

另外,如果你需要的是一个网络流量捕捉工具,你不需要编写自己的,总有Wireshark的,这是基于libpcap的,这JPCAP是一个包装.无论如何只需查看电源libpcap(以及jpcap)就可以查看Wireshark .

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有