我正在编写一个程序,使用套接字编程在客户端和服务器之间下载/上传文件.我写的代码到目前为止,我可以成功地传输文件.但是,如果在发生下载/上传时由于网络/客户端/服务器中的问题导致连接失败..我需要从原始点恢复下载/上传(不希望重新发送最初发送的数据).我不知道该如何解决这个问题.我正在将文件读入字节数组并通过网络发送.我最初的想法是,每次我下载..我应该检查文件是否已经存在并将数据读入字节数组 - >将数据发送到服务器进行比较,然后通过服务器文件返回剩余的数据比较两个字节数组.但这似乎效率低下并且不再重新开始下载(因为我再次发送数据).注意:文件名是唯一标识符.如果有人能就我应该如何实现文件恢复功能给我建议,我真的很感激?
Server side code:
package servers;
import java.io.*;
import java.net.*;
import java.util.Arrays;
public class tcpserver1 extends Thread
{
public static void main(String args[]) throws Exception
{
ServerSocket welcomeSocket = null;
try
{
welcomeSocket = new ServerSocket(5555);
while(true)
{
Socket socketConnection = welcomeSocket.accept();
System.out.println("Server passing off to thread");
tcprunnable tcprunthread = new tcprunnable(socketConnection);
Thread thrd = new Thread(tcprunthread);
thrd.start();
System.out.println(thrd.getName());
}
}
catch(IOException e){
welcomeSocket.close();
System.out.println("Could not connect...");
}
}
}
class tcprunnable implements Runnable
{
Socket socke;
public …Run Code Online (Sandbox Code Playgroud)