gpt4 book ai didi

java - 将 Java 套接字文件描述符传递给 C 二进制文件的最有效方法

转载 作者:行者123 更新时间:2023-12-02 00:18:36 25 4
gpt4 key购买 nike

我似乎无法在任何地方找到答案,我试图在Java中获取一个套接字,并交出它的文件描述符编号,以便我可以在C二进制文件中使用它(fd将作为参数) 。

我已经使用反射获得了 FileDescriptor...但无法在任何地方访问实际数字。

我知道其他人建议使用 JNI,但如果可能的话,我想将其保留在 Java 中(并且无法完全弄清楚如何做到这一点)

最佳答案

在 Java 7 中,您可以将 SocketInputStream 转换为 FileInputStream,并调用 getFD() 来获取 FileDescriptor 对象。

然后您可以使用反射来访问 FileDescriptor 对象的 private int fd 字段。 (您使用 Class.getDeclaredField(...) 方法获取 Field,调用 Field.setAccessible(true),然后使用 获取字段的值Field.getInt(...).)

<小时/>

请注意,这样做可能会使您的代码依赖于平台。无法保证特定的私有(private)字段将出现在较旧的...或即将推出的 Java 版本中,或者出现在其他供应商/供应商完成的 Java 实现中。

关于java - 将 Java 套接字文件描述符传递给 C 二进制文件的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11455803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com