サーバーとクライアントのファイル転送モジュールを書いていますが、ファイル情報をファイル自体と一緒に送信できるかどうかを知りたいと思っていました.特に、クライアントに送信されるサーバー上のファイルのファイル名とフォルダー構造が必要です. 元。サーバーに 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) {
}