gpt4 book ai didi

java - 从java套接字发送文件到c++linux套接字

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:48 25 4
gpt4 key购买 nike

我已经搜索了关于如何在 Linux 中使用套接字接收和发送文件的简洁解释,但我找不到一个甚至有点用的解决方案。我在 Linux 上有一个 C++ 服务器,还有一个在 Java 中运行的客户端。

我需要它来执行以下操作:

  • 客户端需要能够向服务器发送文本命令。
  • 客户端需要能够向服务器发送/接收文件。
  • 服务器在接收文件时获取以下命令:PUT < saveLocation > < filecontents >
  • 一切都以“\n”结束。

我已经编写了很多代码,并且能够在客户端和服务器之间来回发送命令。但现在我陷入了在客户端和服务器上发送/接收文件的困境。

我应该采取什么步骤,才能从客户端接收“PUT/map1/test.pdf somefile”的命令并且还收到实际的文件?

如果需要代码,请询问,我会发布它,但我不知道哪些代码块会有帮助。

最佳答案

为什么不使用 FTP 服务器呢?毕竟,FTP 就是为此而设计的。您可以在服务器上设置 FTP 守护程序并使用 Apache commons-net 中的 FTPClient .

如果您一心想重新发明轮子,MIME 多部分方法(通过 HTTP 发布文件或将其作为电子邮件附件发送时使用)是定义一个边界,然后对二进制文件内容进行 BASE64 编码,以便能够将其作为 ASCII 文本发送。

边界应该是足够复杂且唯一的文本字符串。您的“交易”将类似于

PUT <filename> boundary=A_COMPLEX_BOUNDARY_STRING<newline>
<BASE64 encoded binary file content>A_COMPLEX_BOUNDARY_STRING

当在服务器上接收时,您解析文件名、边界值,然后您知道边界字符串的第一个换行符之后的所有内容都是 BASE64 编码的二进制文件数据。

关于java - 从java套接字发送文件到c++linux套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13990155/

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