Skip to content

Commit beb0789

Browse files
author
quaa
committed
Changed to a faster way to comm, but DONE is not working. Need to fix
1 parent 96fb444 commit beb0789

File tree

2 files changed

+63
-15
lines changed

2 files changed

+63
-15
lines changed

src/net/quaa/jfs/Client.java

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.io.ObjectInputStream;
88
import java.io.ObjectOutputStream;
99
import java.net.Socket;
10+
import java.util.Vector;
1011

1112
public class Client {
1213
private static String dirName;
@@ -43,12 +44,17 @@ public void runClient() throws Exception {
4344
String[] children = baseDir.list();
4445

4546
for (int i=0; i<children.length; i++) {
46-
visitAllDirsAndFiles(new File(baseDir, children[i]));
47+
visitAllDirsAndFiles(new File(baseDir, children[i]));
48+
System.out.print(i);
4749
}
48-
49-
oos.writeObject(new String(DONE));
50+
System.out.print("Setting done");
51+
Vector<String> vecDONE = new Vector<String>();
52+
vecDONE.add(DONE);
53+
oos.writeObject(vecDONE);
5054
oos.flush();
51-
55+
System.out.println(DONE);
56+
57+
5258
if(fExists)
5359
updateFromServer(sock, fullDirName);
5460

@@ -59,7 +65,7 @@ public void runClient() throws Exception {
5965

6066
// Process all files and directories under dir
6167
public static void visitAllDirsAndFiles(File dir) throws Exception{
62-
oos.writeObject(new String(dir.getName()));
68+
/* oos.writeObject(new String(dir.getName()));
6369
oos.flush();
6470
6571
ois.readObject();
@@ -74,10 +80,34 @@ public static void visitAllDirsAndFiles(File dir) throws Exception{
7480
7581
ois.readObject();
7682
77-
if(!dir.isDirectory()) {
78-
oos.writeObject(new Long(dir.lastModified()));
83+
*/
84+
Vector<String> vec = new Vector<String>();
85+
vec.add(dir.getName());
86+
vec.add(dir.getAbsolutePath().substring((dir.getAbsolutePath().indexOf(fullDirName) + fullDirName.length())));
87+
88+
if(dir.isDirectory()) {
89+
oos.writeObject(vec);
7990
oos.flush();
91+
oos.close();
92+
ois.close();
93+
sock = new Socket(serverIP, PORT_NUMBER);
94+
oos = new ObjectOutputStream(sock.getOutputStream());
95+
ois = new ObjectInputStream(sock.getInputStream());
8096

97+
ois.readObject();
98+
} else {
99+
// oos.writeObject(new Long(dir.lastModified()));
100+
// oos.flush();
101+
102+
vec.add(new Long(dir.lastModified()).toString());
103+
oos.writeObject(vec);
104+
oos.flush();
105+
oos.close();
106+
ois.close();
107+
sock.close();
108+
sock = new Socket(serverIP, PORT_NUMBER);
109+
oos = new ObjectOutputStream(sock.getOutputStream());
110+
ois = new ObjectInputStream(sock.getInputStream());
81111
// receive SEND or RECEIVE
82112
Integer updateToServer = (Integer) ois.readObject(); //if true update server, else update from server
83113

src/net/quaa/jfs/Server.java

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.io.ObjectOutputStream;
99
import java.net.ServerSocket;
1010
import java.net.Socket;
11+
import java.util.Vector;
1112

1213
public class Server {
1314
private int PORT_NUMBER;
@@ -27,6 +28,7 @@ public void startServer() throws Exception {
2728
servsock = new ServerSocket(PORT_NUMBER);
2829

2930
while (true) {
31+
System.out.println("NEW CLIENT");
3032
sock = servsock.accept();
3133

3234
ois = new ObjectInputStream(sock.getInputStream());
@@ -46,7 +48,7 @@ public void startServer() throws Exception {
4648
Boolean isClientDone = false;
4749

4850
while (!isClientDone) {
49-
String fName = (String) ois.readObject();
51+
/* String fName = (String) ois.readObject();
5052
5153
if(fName.equals(DONE)) { // check if we are done
5254
isClientDone = true;
@@ -57,21 +59,36 @@ public void startServer() throws Exception {
5759
oos.flush();
5860
5961
Boolean isDirectory = (Boolean) ois.readObject();
62+
*/
63+
Vector<String> vec = (Vector<String>) ois.readObject();
6064

61-
if(isDirectory) {
62-
oos.writeObject(new Boolean(true));
65+
oos.close();
66+
ois.close();
67+
sock.close();
68+
sock = servsock.accept();
69+
oos = new ObjectOutputStream(sock.getOutputStream());
70+
ois = new ObjectInputStream(sock.getInputStream());
71+
System.out.println(vec.elementAt(0));
72+
if(vec.elementAt(0).equals(DONE)) {
73+
System.out.println(DONE);
74+
isClientDone = true;
75+
break;
76+
}
77+
78+
if(vec.size() == 2) { // if the size is 2 then this is a directory
79+
/* oos.writeObject(new Boolean(true));
6380
oos.flush();
6481
6582
String path = (String) ois.readObject();
66-
67-
File newDir = new File(baseDir, path);
83+
*/
84+
File newDir = new File(baseDir, vec.elementAt(1));
6885
if (!newDir.exists())
6986
newDir.mkdir();
7087

7188
oos.writeObject(new Boolean(true));
7289
oos.flush();
7390
} else {
74-
oos.writeObject(new Boolean(true));
91+
/* oos.writeObject(new Boolean(true));
7592
oos.flush();
7693
7794
String path = (String) ois.readObject();
@@ -80,10 +97,11 @@ public void startServer() throws Exception {
8097
oos.flush();
8198
8299
Long lastModified = (Long) ois.readObject();
83-
84-
File newFile = new File(baseDir, path);
100+
*/
101+
File newFile = new File(baseDir, vec.elementAt(1));
85102
Integer updateFromClient = 2; // default = do nothing
86103

104+
Long lastModified = new Long(vec.elementAt(2));
87105
if (!newFile.exists() || (newFile.lastModified() <= lastModified))
88106
updateFromClient = 1;
89107
else

0 commit comments

Comments
 (0)