首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何连接到客户端服务上的Unix域套接字,只知道套接字文件描述符

如何连接到客户端服务上的Unix域套接字,只知道套接字文件描述符
EN

Stack Overflow用户
提问于 2021-08-24 20:36:55
回答 1查看 136关注 0票数 0

我的服务A通过UNIX与同一主机上的另一个服务B通信。我所掌握的唯一信息是套接字文件描述符的值,其中服务B准备通过套接字向服务A发送数据。我使用第三方库junixsocket在服务之间通过UDS进行通信。我的问题是如何使用这个库连接到服务上的套接字--端只知道套接字文件描述符?

我刚刚找到了如何连接到服务上的套接字--端使用socketPath:

File socketFile = new File("/path/to/your/socket"); AFUNIXSocket sock = AFUNIXSocket.newInstance(); sock.connect(new AFUNIXSocketAddress(socketFile));

但是我需要知道如何用文件描述符连接到它。

我正在使用openJDK-11,这就是为什么我必须使用第三方库来进行UDS通信。

EN

回答 1

Stack Overflow用户

发布于 2022-10-14 11:31:23

由于junixSocket2.4(尽管您应该使用最新版本,目前为2.5.2),我们支持将FileDescriptor“强制转换”到其他几个对象,如SocketInputStream等。

junixsocket将确保“强制转换”(因为它返回另一个对象而不是简单的强制转换)成功--只要转换是有效的。

示例:

代码语言:javascript
复制
FileDescriptor fd = ...;
AFUNIXSocket socket = FileDescriptorCast.using(fd).as(AFUNIXSocket.class);

这里有更多详细信息:https://kohlschutter.github.io/junixsocket/filedescriptors.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68913811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档