Skip to content

Commit a5cb7d6

Browse files
author
quaa
committed
Changed from default package to net.quaa.jfs
1 parent 803e63d commit a5cb7d6

File tree

3 files changed

+203
-0
lines changed

3 files changed

+203
-0
lines changed

src/net/quaa/jfs/Client.java

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package net.quaa.jfs;
2+
3+
import java.io.ObjectOutputStream;
4+
import java.net.Socket;
5+
6+
public class Client {
7+
private String dirName;
8+
private String serverIP;
9+
private int PORT_NUMBER;
10+
11+
public Client(String dirName, String serverIP, int port) {
12+
this.dirName = dirName;
13+
this.serverIP = serverIP;
14+
PORT_NUMBER = port;
15+
16+
System.out.println("Client Selected!");
17+
System.out.println("Dir to sync: " + dirName);
18+
System.out.println("Server IP: " + serverIP);
19+
}
20+
21+
public void runClient() throws Exception {
22+
String localDirName = dirName; //cleaning up the users input
23+
if(dirName.contains("/")){
24+
if(dirName.lastIndexOf("/") != (dirName.length() - 1)) {
25+
localDirName = dirName.substring(dirName.lastIndexOf("/"));
26+
} else {
27+
localDirName = dirName.substring(0, (dirName.length() - 1));
28+
if(localDirName.contains("/"))
29+
localDirName = localDirName.substring(localDirName.lastIndexOf("/"));
30+
}
31+
}
32+
33+
if(localDirName.equals(".")){
34+
System.out.println("Please input a dir name instead of ./ or .");
35+
Thread.sleep(10);
36+
System.exit(0);
37+
}
38+
39+
if(!localDirName.startsWith("./")){ //still cleaning up their input
40+
if(localDirName.startsWith("/"))
41+
localDirName = "." + localDirName;
42+
else
43+
localDirName = "./" + localDirName;
44+
}
45+
46+
Socket sock = new Socket(serverIP, PORT_NUMBER);
47+
ObjectOutputStream oos = new ObjectOutputStream(sock.getOutputStream());
48+
oos.writeObject(localDirName);
49+
oos.flush();
50+
51+
/* //check to see if file exists on server
52+
ObjectInputStream ois = new ObjectInputStream(sock.getInputStream());
53+
String fExists = (String) ois.readObject();
54+
55+
if(fExists.equals("1")){
56+
System.out.print("Receiving file: ");
57+
byte[] mybytearray = new byte[1024];
58+
InputStream is = sock.getInputStream();
59+
FileOutputStream fos = new FileOutputStream(fileName);
60+
BufferedOutputStream bos = new BufferedOutputStream(fos);
61+
int bytesRead = 0;
62+
int current = 0;
63+
while((bytesRead = is.read(mybytearray, 0, mybytearray.length)) != -1){
64+
bos.write(mybytearray, 0, bytesRead);
65+
current = current + bytesRead;
66+
System.out.print(".");
67+
}
68+
System.out.println();
69+
System.out.println("Done!");
70+
oos.close();
71+
ois.close();
72+
bos.close();
73+
}else{
74+
System.out.println("Server replied that " + fileName + " does not exist, closing connection.");
75+
}
76+
*/ oos.close();
77+
sock.close();
78+
}
79+
}

src/net/quaa/jfs/Server.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package net.quaa.jfs;
2+
3+
import java.io.File;
4+
import java.io.ObjectInputStream;
5+
import java.net.ServerSocket;
6+
import java.net.Socket;
7+
8+
public class Server {
9+
private int PORT_NUMBER;
10+
11+
public Server(int port) {
12+
PORT_NUMBER = port;
13+
}
14+
15+
public void startServer() throws Exception {
16+
System.out.println("Starting File Sync Server!");
17+
18+
ServerSocket servsock = new ServerSocket(PORT_NUMBER);
19+
20+
while (true) {
21+
Socket sock = servsock.accept();
22+
23+
ObjectInputStream ois = new ObjectInputStream(sock.getInputStream());
24+
String baseDir = (String) ois.readObject();
25+
26+
File fBaseDir = new File(baseDir);
27+
28+
if(fBaseDir.exists() && fBaseDir.isDirectory()){
29+
System.out.println(baseDir + " is a directory and exists!");
30+
/* System.out.print("Sending file '" + fileName + "' to: " + sock.getInetAddress() + "...");
31+
ObjectOutputStream oos = new ObjectOutputStream(sock.getOutputStream());
32+
oos.writeObject("1");
33+
byte[] mybytearray = new byte[(int) f.length()];
34+
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
35+
bis.read(mybytearray, 0, mybytearray.length);
36+
OutputStream os = sock.getOutputStream();
37+
os.write(mybytearray, 0, mybytearray.length);
38+
os.flush();
39+
System.out.println(" DONE!");
40+
*/ }else{
41+
System.out.println(baseDir + " Exists?: " + fBaseDir.exists() + " IsDirectory?: " + fBaseDir.isDirectory());
42+
/* System.out.println(sock.getInetAddress() + " requested " + fileName + ", but it does not exist!");
43+
ObjectOutputStream oos = new ObjectOutputStream(sock.getOutputStream());
44+
oos.writeObject("0");
45+
oos.flush();
46+
*/ }
47+
sock.close();
48+
}
49+
}
50+
}

src/net/quaa/jfs/javaFileSync.java

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package net.quaa.jfs;
2+
3+
import java.io.File;
4+
5+
public class javaFileSync {
6+
private static final int PORT_NUMBER = 17555;
7+
8+
public static void main(String[] args) {
9+
try {
10+
if(args.length > 0) {
11+
if (args[0].equalsIgnoreCase("-s")) {
12+
server();
13+
} else if (args[0].equalsIgnoreCase("-c") && args.length > 1 && args.length < 4) {
14+
client(args[2], args[1]);
15+
} else {
16+
System.out.println("Invalid entry. Useage: java javaFileSync [-s] [-c [server IP] [dir to sync]]");
17+
}
18+
} else {
19+
System.out.println("Invalid entry. Useage: java javaFileSync [-s] [-c [server IP] [dir to sync]]");
20+
}
21+
} catch (Exception e) {
22+
e.printStackTrace();
23+
}
24+
}
25+
26+
public static void server() throws Exception {
27+
Server s = new Server(PORT_NUMBER);
28+
s.startServer();
29+
}
30+
31+
public static void client(String dirName, String serverIP) throws Exception {
32+
Client c = new Client(dirName, serverIP, PORT_NUMBER);
33+
c.runClient();
34+
}
35+
36+
// Process all files and directories under dir
37+
public static void visitAllDirsAndFiles(File dir) {
38+
//process(dir);
39+
System.out.println("Name: " + dir.getName() + " Modified: " + dir.lastModified() + " Size: " + dir.length());
40+
if (dir.isDirectory()) {
41+
String[] children = dir.list();
42+
for (int i=0; i<children.length; i++) {
43+
visitAllDirsAndFiles(new File(dir, children[i]));
44+
}
45+
}
46+
}
47+
48+
// Process only directories under dir
49+
public static void visitAllDirs(File dir) {
50+
if (dir.isDirectory()) {
51+
//process(dir);
52+
System.out.println("Name: " + dir.getName() + " Modified: " + dir.lastModified() + " Size: " + dir.length());
53+
54+
String[] children = dir.list();
55+
for (int i=0; i<children.length; i++) {
56+
visitAllDirs(new File(dir, children[i]));
57+
}
58+
}
59+
}
60+
61+
// Process only files under dir
62+
public static void visitAllFiles(File dir) {
63+
if (dir.isDirectory()) {
64+
String[] children = dir.list();
65+
for (int i=0; i<children.length; i++) {
66+
visitAllFiles(new File(dir, children[i]));
67+
}
68+
} else {
69+
//process(dir);
70+
System.out.println("Name: " + dir.getName() + " Modified: " + dir.lastModified() + " Size: " + dir.length());
71+
}
72+
}
73+
74+
}

0 commit comments

Comments
 (0)