大家好,我已经用 Java 实现了一个服务器客户端程序,以便客户端可以从服务器下载文件。
但问题是我想在文件下载之前在客户端和服务器之间交换一些消息(字符串)。我在 JAVA 中用来在它们之间交换字符串的任何东西都能够在它们之间交换字符串,但是文件没有正确下载。我不知道为什么。
下载文件的客户端代码:
byte[] b = new byte[1024];
int len = 0;
long bytcount = 1024;
File fp = new File("/home/luv/Desktop/LUVSAXENA_IT.docx");
RandomAccessFile ra=new RandomAccessFile(fp,"rw");
ra.seek(0);
InputStream i = sock.getInputStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(i));
InputStream is = sock.getInputStream();
while ((len = is.read(b, 0, 1024)) != -1) {
System.out.println("len"+len+"\n");
bytcount = bytcount + 1024;
//decrypt
ra.write(b, 0, len);
}
is.close();
ra.close();
sock.close();
发送文件的服务器代码:
byte[] buf = new byte[1024];
OutputStream os = sock.getOutputStream();
BufferedOutputStream out = new BufferedOutputStream(os, 1024);
File folder = new File("/home/luv/NetBeansProjects/Shared/");
File[] listoffiles=folder.listFiles();
String s;
int i=0;
File fp = new File("/home/luv/NetBeansProjects/Shared/LUVSAXENA_IT.docx");
RandomAccessFile ra = new RandomAccessFile(fp,"r");
long bytecount=1024;
while((i=ra.read(buf, 0, 1024)) != -1)
{
bytecount += 1024;
out.write(buf, 0, i);
out.flush();
}
sock.shutdownOutput();
out.close();
ra.close();
sock.close();
在下载文件之前,我如何在客户端和服务器之间安全地交换字符串,以便之后可以安全地下载文件。
提前感谢