シミュレーションプロセスは次のとおりです。AがBにファイルを送信します。
Aは送信者、Bは受信者です。
tcpソケットを使用します。
中古:
ServerSocket ss = new ServerSocket(int 端口号);//接收端
Socket s = ss.accept();//接收端
Socket s=new Socket(String IP地址, int 端口);//发送端
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(String 文件路径+文件名));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(String 文件路径+文件名));
文件路径格式可以是:
"D:\\....\\....\\文件名"
比特数组:
byte[] buf=new byte[1024];
循环读取
int b;
while((b=bis.read(buf))!=-1){
fos.write(buf,0,b);
fos.flush();
}
送信者A:
BufferedInputStreamは、新しいFileInputStream()メソッドを介してローカルでファイルを読み取ります。BufferedOutputStreamのFileOutputStreamインスタンスは、s.getOutputStream()メソッドを介して取得され、ネットワーク内のホストに送信されます。
レシーバーB:
送信側とは逆、または対応します。
BufferedInputStreamのFileInputStreamは、s.getInputStream()を介して取得され、ネットワークから取得されます。BufferedOutputStreamは、新しいFileOutputStream()メソッドを介してファイルをローカルパスに書き込みます。
コード:
送信者:
try {
Socket s=new Socket("127.0.0.1",端口);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\file\\tee"));
BufferedOutputStream fos = new BufferedOutputStream(s.getOutputStream());
byte[] buf=new byte[1024];
int b;
while((b=bis.read(buf))!=-1){
fos.write(buf,0,b);
fos.flush();
}
fos.close();
bis.close();
} catch (IOException exception) {
exception.printStackTrace();
}
受信終了:
try {
ServerSocket ss = new ServerSocket(端口);
Socket s = ss.accept();
BufferedInputStream bis = new BufferedInputStream(s.getInputStream());
BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream("D:\\otherfile\\tee"));
byte[] buf=new byte[1024];
int b;
while((b=bis.read(buf))!=-1){
fos.write(buf,0,b);
fos.flush();
}
fos.close();
bis.close();
} catch (IOException exception) {
exception.printStackTrace();
}