我正在尝试在 Java 中创建对等文件共享网络。我正在使用 UDP 连接通过网络发送数据包。但我无法通过 UDP 连接传输完整的文件。大多数数据包每次都丢失。如果我延迟发送数据包,接收器会收到所有数据包。
这是我的发件人代码:
while (fso.hasNextBlock()){
byte[] temp1 =fso.nextBlock();
int size1 = temp1.length;
packet=new DatagramPacket(temp1, size1,ipaddress,port);
socket.send(packet);
// Thread.sleep(100);
}
这是接收方代码:
FileOutputStream out=new FileOutputStream(file);
byte[] data=new byte[size];
DatagramPacket packet=new DatagramPacket(data, data.length);
int i=0;
while(true){
socket.receive(packet);
out.write(packet.getData());
System.out.println("packet "+i);
i++;
..... // some codes
}
我的代码有什么问题吗?
我不熟悉点对点网络。在文件共享网络中使用 TCP 还是 UDP 哪个更好?