gpt4 book ai didi

java - 将 native Winsock 套接字传递给 Java 套接字

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:39 25 4
gpt4 key购买 nike

我需要将 C++ 应用程序创建的 native winsock 套接字传递到我的应用程序中使用 java.net.Socket 连接到服务器的库。这个 Winsock 应用程序已经负责连接套接字。

如何显式设置 java.net.Socket 的套接字描述符?

最佳答案

我在 Unix 上遇到过这样的问题,不确定同样的机制是否适用于 WinSock。

在我们的例子中,C 语言的程序使用特殊硬件创建套接字。 C 程序生成 Java 程序并将其传递给套接字。然后,Java 程序从套接字的文件描述符构造输入/输出流,以便它可以像普通套接字一样对其进行读/写。

Java 代码片段在这里,

    Class<FileDescriptor> clazz = FileDescriptor.class;

Constructor<FileDescriptor> c;
try {
c = clazz.getDeclaredConstructor(new Class[] { Integer.TYPE });
} catch (SecurityException e) {
e.printStackTrace();
return;
} catch (NoSuchMethodException e) {
e.printStackTrace();
return;
}

c.setAccessible(true);
FileDescriptor fd;
try {
fd = c.newInstance(new Integer(socket));
} catch (IllegalArgumentException e) {
e.printStackTrace();
return;
} catch (InstantiationException e) {
e.printStackTrace();
return;
} catch (IllegalAccessException e) {
e.printStackTrace();
return;
} catch (InvocationTargetException e) {
e.printStackTrace();
return;
}

FileOutputStream os = new FileOutputStream(fd);
FileInputStream is = new FileInputStream(fd);

关于java - 将 native Winsock 套接字传递给 Java 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3193533/

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