我正在编写一个服务器和客户端文件传输模块,我想知道是否可以将文件信息与文件本身一起发送。特别是我需要发送到客户端的服务器上文件的文件名和文件夹结构。前任。如果我在服务器上有 c:\abc\efg\a.txt 我想在客户端上有 .\abc\efg\a.txt 。
这是我正在使用的代码:
服务器端文件发送:
Socket clientSocket=new Socket("Some IP",12345);
OutputStream out=clientSocket.getOutputStream();
FileInputStream fis=new FileInputStream(file);
int x=0;
byte[] b = new byte[4194304];
while(true){
x=fis.read(b);
if(x==-1)break;
out.write(b);
}
out.close();
客户端监听器:
try {
ServerSocket ss=new ServerSocket(12345);
while(true){
final Socket client = ss.accept();
new Thread(new Runnable() {
@Override
public void run() {
try{
InputStream in = client.getInputStream();
FileOutputStream fos = new FileOutputStream("rec.txt");
int x=0;
byte[] b = new byte[4194304];
while(true){
x=in.read(b);
if(x==-1)break;
fos.write(b);
}
fos.close();
}
catch(Exception e){
}
}
}).start();
}
} catch (Exception e) {
}