我将使用 Java 套接字传输文件(例如:abc.jpg):
我能做什么:
我想要的是什么:
我的想法:
问题:
有没有人知道如何让对方知道文件名和文件长度?谢谢你的帮助。
答案 0 :(得分:0)
好的,根据你的评论,最简单的方法是创建可序列化的容器类并发送它。例如
public class FileContainer implements Serializable{
private String filename;
private Integer size;
private byte[] data;
//proper getters and setters
}
稍后,将文件读入字节数组,将其放入容器中,然后通过socket
序列化FileContainer fc=new FileContainer();
//TODO: read file and set proper fields in fc
ObjectOutputStream out=new ObjectOutputStream(socket.getOutputStream());
out.writeObject(fc);
//and on receiving side
ObjectInputStream in=new ObjectInputStream(socket.getInputStream());
FileContainer fc=in.readObject(); // here you will need to add type casting
就是这样。
您还提到要检查数据是否正确。如果是TCP连接,则不必担心协议本身会保证数据核心性。如果出现问题,双方都会获得例外。但是在UDP通信中情况不同。