Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪种语言更适合数据包捕获和处理_Java_C_Multithreading_Network Programming_Packet Capture - Fatal编程技术网

Java 哪种语言更适合数据包捕获和处理

Java 哪种语言更适合数据包捕获和处理,java,c,multithreading,network-programming,packet-capture,Java,C,Multithreading,Network Programming,Packet Capture,我想写一个有两个线程的程序,一个线程从网络上连续捕获数据包,每t秒将它们转储到一个缓冲区,另一个线程连续读取这个缓冲区,每t秒处理一次。。这可以用C语言完成吗?还是Java是更好的选择 这当然可以用C来完成 在Java中执行此操作将取决于您是否有权访问Java的数据包捕获库(假设您的意思是要捕获任意数据包,而不仅仅是专门针对您的应用程序的数据包)。这里的答案是著名的“libpcap”。只要有一个好的libpcap包装器可用,就可以使用您最喜欢的语言 如果您喜欢,C/C++当然是一个完美的选择,

我想写一个有两个线程的程序,一个线程从网络上连续捕获数据包,每t秒将它们转储到一个缓冲区,另一个线程连续读取这个缓冲区,每t秒处理一次。。这可以用C语言完成吗?还是Java是更好的选择

这当然可以用C来完成


在Java中执行此操作将取决于您是否有权访问Java的数据包捕获库(假设您的意思是要捕获任意数据包,而不仅仅是专门针对您的应用程序的数据包)。

这里的答案是著名的“libpcap”。只要有一个好的libpcap包装器可用,就可以使用您最喜欢的语言

  • 如果您喜欢,C/C++当然是一个完美的选择,因为您不需要任何包装器
  • JNetPcap()是一个java winpcap/libpcap包装器
  • Sharpcap()是一个C#libpcap解析器。我以前用它做过一些事情

所以选择你的语言,检查包装器是否存在,然后继续。如果这种语言没有包装器,要么改变你的选择,要么创建你自己的包装器

,我知道的每个“Java”包捕获库实际上都是libpcap周围的JNI包装器。使用JNI包装器没有什么不好的。我想用java编写同样的代码要比用C容易得多。谢谢大家!我习惯于在java中使用线程,并使用libpcap在C中进行数据包捕获。在C中使用线程是否可以像在java中一样轻松?网络上有什么具体的信息对我有帮助吗。。