update send date stuff

This commit is contained in:
Michael Scholz 2013-02-10 14:22:08 +01:00
parent b7131cc41e
commit f3793804bf
2 changed files with 42 additions and 8 deletions

View File

@ -401,6 +401,8 @@ public class Node {
int FILE_SIZE = (int)file.length();
boolean eof = false;
int NUMBER_OF_CHUNKS = 0;
byte[] temp = null;
@ -414,7 +416,8 @@ public class Node {
while(totalBytesRead < FILE_SIZE){
int bytesReamaining = FILE_SIZE-totalBytesRead;
if(bytesReamaining < CHUNK_SIZE){
CHUNK_SIZE = bytesReamaining;
CHUNK_SIZE = bytesReamaining+1;
eof = true;
}
temp = new byte[CHUNK_SIZE];
int bytesRead = inStream.read(temp, 0, CHUNK_SIZE);
@ -424,8 +427,16 @@ public class Node {
NUMBER_OF_CHUNKS++;
}
//send chunk
String data = fileID.toString()+"|"+NUMBER_OF_CHUNKS+"-"+temp.toString();
String data = "";
if(eof){
data = fileID.toString()+"|"+NUMBER_OF_CHUNKS+"-"+temp.toString()+"!";
}else{
data = fileID.toString()+"|"+NUMBER_OF_CHUNKS+"-"+temp.toString();
}
send(nodeID, MessageType.DATA, data.getBytes(), true, null);

View File

@ -130,11 +130,7 @@ public class UDPHandler implements Runnable {
receiveStore(fromID, rpcID);
break;
case MessageType.DATA:
//TODO implemnt
//rpcID splitten ? -> [0] fileID, [1] partID ?!?!?!
receiveData(fromID, fileID, partID);
receiveData(fromID, rpcID);
LOGGER.log(Level.INFO, "Received DATA from {0}",
new Object[] { from.toString() });
break;
@ -168,7 +164,34 @@ public class UDPHandler implements Runnable {
}
}
private void receivePong(NodeIdentifier fromID, Identifier rpcID) {
private void receiveData(NodeIdentifier fromID, Identifier rpcID) {
StringBuilder sb = new StringBuilder();
while (buffer.hasRemaining()) {
sb.append(buffer.get());
}
String data = sb.toString();
String parts[] = data.split("-");
// This should be the answer to a prior FIND_NODE -> mark this RPC ID as
// received
node.receivedRPC(fromID, rpcID);
LOGGER.log(Level.INFO, "Received [DATA] [{0}] from Node {1})",
new Object[] { data.toString(), fromID });
}
private void receivePong(NodeIdentifier fromID, Identifier rpcID) {
LOGGER.log(Level.INFO, "Received [PONG] from {0}",
new Object[] { fromID });