我正在編寫服務器和客戶端文件傳輸模塊,我想知道是否可以將文件信息與文件本身一起發送。特別需要文件名和服務器上發送給客戶端的文件的文件夾結構。例如,如果我在服務器上有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) {
}
當然是可能的,但你需要創建一個它更復雜的協議。或者你可以使用已經做過類似的事情,如HTTP或FTP的許多服務之一。 – biziclop
謝謝,但我正在尋找一些本地支持,我知道所有這些選擇,但他們是我的最後選擇。 – armin
沒有這種本地支持。除非你使用網絡文件系統,當然,但這不是這種情況。 – fge