【发布时间】:2012-12-21 12:24:15
【问题描述】:
我已经搜索了关于如何使用套接字在 linux 中接收和发送文件的简洁解释,但我找不到一个甚至有点工作的解决方案。 我在 linux 上有一个 c++ 服务器,还有一个在 java 中运行的客户端。
我需要它来做以下事情:
- 客户端需要能够向服务器发送文本命令。
- 客户端需要能够向服务器发送/接收文件。
- 服务器在接收文件时得到以下命令:PUT
- 一切都被“\n”关闭。
我已经编写了很多代码,并且能够在客户端和服务器之间来回发送命令。但现在我被困在客户端和服务器上发送/接收文件。
我应该采取什么步骤,才能从客户端接收“PUT /map1/test.pdf somefile”的命令 并收到实际文件?
如果需要代码,请询问,我会发布它,但我不知道哪些代码块有帮助。
【问题讨论】:
-
关键是,如果是大文件,分片发送。使用缓冲区以较小的部分读取/写入文件。如果这不是您想要的,您需要在您的问题中更加具体。
-
C++ 或 java 在这里不相关。问题是:两边都有一个套接字,并且双向发送数据。你必须设计一个协议,让你做你想做的事(就像 FTP 是一个示例协议来实现你似乎需要的东西)。然后你在两边都实现它,你就完成了。您可以查找示例协议并从中构建。
-
如果
Everything gets closed by "\n".你有两个很大的限制。您不能发送二进制文件,也不能发送多于一行的文本。我会重新考虑协议。
标签: java c++ linux file sockets