文件接收
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
*
* @author GDL
*
*/
public class RecFileServer {
public static final int FILE_PORT = 8900;//定义端口号
public static void main(String[] args) throws IOException {
RecFileServer rfs = new RecFileServer();
rfs.rs();
}
private void rs() throws IOException {
ServerSocket ss = new ServerSocket(FILE_PORT);
while (true) {
Socket s = ss.accept();
InputStream is = s.getInputStream();
DataInputStream dis = new DataInputStream(is);
String fileName = dis.readUTF();
File file = new File(fileName);
//文件存在就删除
if (file.exists()) {
file.delete();
}
//先创建文件,再传送文件内容
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
byte[] bs = new byte[1024];
int l = -1;
//每次读取到数组中,再写到本地,接着遍历文件重复,直到全部读取完
while ((l = dis.read(bs, 0, bs.length)) > 0) {
fos.write(bs, 0, l);
fos.flush();
}
fos.close();
dis.close();
is.close();
s.close();
}
}
}
文件发送
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class SendFileClient {
public static void main(String[] args) throws UnknownHostException,
IOException {
SendFileClient sfc = new SendFileClient();
sfc.sf();
}
Scanner scanner = new Scanner(System.in);
public static final int FILE_PORT = 8900;
private void sf() throws UnknownHostException, IOException {
System.out.println("源文件:");
String src = scanner.nextLine();
System.out.println("目标ip::");
String ip = scanner.nextLine();
System.out.println("目标文件:");
String to = scanner.nextLine();
Socket s = new Socket(ip, FILE_PORT);
File file = new File(src);
FileInputStream fis = new FileInputStream(file);
byte[] bs = new byte[1024];
int l = -1;
while ((l = fis.read(bs, 0, bs.length)) > 0) {
os.write(bs, 0, l);
os.flush();
}
fis.close();
dos.close();
os.close();
s.close();
}
}