使用C和JAVA实现FUSE

时间:2013-03-14 06:25:25

标签: java mysql c samba fuse

我正在尝试在 Mysql数据库之上创建 fuse文件系统,并使用 Windows客户端中的这个客户端请求通过SAMBA !!

传递给 Linux端的Java服务器

我需要知道如何设置这种实现

工作:

第1步:Windows端的客户端将登录。

步骤2:登录后,用户发出'ls'命令。

步骤3:此命令应作为C函数进行处理

步骤4:C函数依次使用JSONCpp或Thrift将命令作为参数发送给Java服务器

步骤5:此函数调用在Linux上运行的Java服务器。

步骤6:Java Server与Mysql数据库交互并获取结果

步骤7:此结果应显示在Windows上的客户端上。

3 个答案:

答案 0 :(得分:1)

  1. 编写一个具有您想要处理的回调的fuse文件系统。
  2. 通过Java代码侦听的本地套接字转发熔丝回调。
  3. Java服务器运行查询并通过套接字返回结果(在2中)。
  4. Fuse系统返回从套接字中读取的信息(在2中)
  5. 将您的保险丝系统分享到桑巴舞。

答案 1 :(得分:0)

我不完全明白你想用哪种语言调用哪种语言函数。

但是有两种主要的跨语言交流方式。

  • 您只需使用套接字即可。在语言A的程序中创建一个侦听特定端口的套接字连接。在另一种语言B中,将参数传递给A程序中的函数,该函数正在侦听输入。它将执行该函数并将输出返回给B的程序。您可以在线轻松找到JAVA和C的套接字示例。

  • 通过扩展语言进行沟通。这比socket更低级。它基本上是用另一种语言B从另一种语言A调用函数/库。例如,你可以将Python扩展为C like this。您可以使用Java Native Interface从JAVA调用C库函数。

根据您的使用和舒适程度,您可以使用上述任何方法进行跨语言服务实施。

答案 2 :(得分:0)

对于Windows端,您可以从DokanMirror开始。实现大多数回调,并且是一个足够好的框架。 Linux方面主要是你自己的代码,所以作为Socket接口。 使用TCP / IP套接字是一种过度杀伤,请注意线程挂起和超时。

一个。使登录成为一个用户空间应用程序,它将直接连接到您的Linux端并进行身份验证。 湾然后,此用户空间应用程序将安装并安装虚拟驱动器(使用dokan)。 C。在dokan-callbacks(用户空间)中,你可以使用tcp / ip连接你的linux盒子。

您对Samba的意思是什么?如果你想分享你的文件系统,那么perreal的回答(第5点)是正确的。