【发布时间】:2016-10-05 03:07:41
【问题描述】:
我正在尝试了解有关网络的更多信息,因此我决定使用套接字做一个小项目。我已经成功地创建了一个我知道非常基本的回声服务器。
下一步是将各种文件(文本文件、图像甚至视频?)从服务器发送到客户端,反之亦然。我一直在尝试使用 FIleOutputStream、ObjectOutputStream(显然还有输入),我什至尝试过 Byte Buffer,但通过阅读 Java 文档,我开始明白我对 Data 真的不太了解......
所以我的问题是:
- 我可以将所有类型的数据(文本、图像、视频)转换为字节,然后发送,然后将其全部转换为以前的数据,还是我需要为每种数据类型提供特定的函数?
- 能否将文本文件或图像转换为对象,然后使用 ObjectOutputFile 发送?如果是这样,那么我该如何在另一边解压呢?我已经尝试过 ObjectOutputFile.readObject,但我真的不知道之后该怎么做。
这是我一直在尝试做的(我不会发布所有代码,因为我相信只有这个特定部分很重要:
服务器:(out 是一个 DataOutputStream)
ObjectOutputStream oos = new ObjectOutputStream(out);
Path path = Paths.get("stuff/Folder.jpg");
byte[] data = Files.readAllBytes(path);
oos.write(data);
客户端(in 是 DataInputStream):
ObjectInputStream ois = new ObjectInputStream(in);
ois.readObject();
提前感谢所有帮助,如果您认为自己知道一篇文章或教程可以帮助我了解更多相关信息,那也会有所帮助!
【问题讨论】:
-
ois.readObject()返回一个字节数组,与您在服务器上发送的相同,所以现在您需要再次将其写入文件 - 您的具体问题是什么?
标签: java sockets networking