java - C/C++ 中的跨平台兼容性(从 Java 移植项目)?

标签 java c++ c networking cross-platform

我用 Java/JavaFX 编写了一个程序,因为我需要跨平台支持。随着我的进步,我需要做一些在 Java 中不可能的低级操作系统网络操作。我从 Runtime.exec() 开始,然后转到 JNA/JNI,现在我担心维护 Java 的操作系统兼容性最终会比仅仅移植到 native 应用程序做更多的工作。

执行此操作的最佳方法是什么?

我知道 *nix 和 Windows 支持 GTK+,所以我想我会在我的 UI 中使用它。为每个操作系统维护我的应用程序的不同版本有多困难?你能推荐一个起点来编写需要跨平台但仍然具有低级操作系统访问权限的东西吗?我拥有丰富的 Java 经验(以及大量使用 OpenGL 的 C++),但我以前从未关心过 Linux 以外的任何事情。

或者,是否有从 Java 构建原始数据包、发送 ICMP ping 和执行其他低级网络任务的好方法?

最佳答案

由于您对 native 代码的要求似乎与网络数据包有关,您可以看看JPCAP .注意:JPCAP 有两个分支:一个托管在 SourceForge 上(package net.sourceforge.jpcap.net),不支持发送,另一个是我在这里链接的(package jpcap,最初托管在 http://netresearch.ics.uci.edu/kfujii)。我认为这对于大多数“低级”网络操作(包括监听混杂模式、发送非 IP 数据报、ICMP 等)来说已经足够了。

关于java - C/C++ 中的跨平台兼容性(从 Java 移植项目)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15424273/

相关文章:

c++ - 共享库中模板化类和 dynamic_cast 的显式实例化

c++ - 仅消息窗口未从托盘图标接收消息

c - 通用 scsi ioctl 后 fread 期间出现段错误

java - 如何在不删除旧值的情况下写入属性文件

java - 为什么 deleteSurroundingText 不适用于表情符号并全选?

java - 用于 Java/JNA 对象引用的 C 中的 C++ API 包装器

c - 包含 2 个文件的 Makefile

c - 根据宏定义,这个输出是什么

java - Hibernate,无法执行查询,SQL 错误 : 17059, SQLState:99999

java - 同步会影响对象成员吗?