From 54d779199073d845786d68bedb47ffa0f327a472 Mon Sep 17 00:00:00 2001 From: rylon Date: Mon, 11 Feb 2013 12:08:47 +0100 Subject: [PATCH] fixed whom 2 send request --- ws2012/P2P/uebungen/11/src/node/Node.java | 11 ++++++++--- ws2012/P2P/uebungen/11/src/node/UDPHandler.java | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ws2012/P2P/uebungen/11/src/node/Node.java b/ws2012/P2P/uebungen/11/src/node/Node.java index 0c4be9f0..992e55bd 100644 --- a/ws2012/P2P/uebungen/11/src/node/Node.java +++ b/ws2012/P2P/uebungen/11/src/node/Node.java @@ -52,6 +52,8 @@ public class Node { private InetSocketAddress address; private DatagramChannel channel; + public NodeIdentifier lastlookup = null; + private Map> rpcs = new HashMap>(); private Map values = new HashMap(); @@ -227,9 +229,12 @@ public class Node { public void sendDataReq(FileIdentifier fileID){ //TODO - String id = "128"; - NodeIdentifier receiver = new NodeIdentifier(8, id.getBytes(), new InetSocketAddress("localhost", INITIAL_PORT)); - send(receiver, MessageType.DATA_REQ, fileID.getBytes(), true, null); + if(lastlookup == null){ + new Exception("lookup first!").printStackTrace(); + return;} + //String id = "128"; + //NodeIdentifier receiver = new NodeIdentifier(8, id.getBytes(), new InetSocketAddress("localhost", INITIAL_PORT)); + send(lastlookup, MessageType.DATA_REQ, fileID.getBytes(), true, null); } public void sendData(NodeIdentifier receiver, Identifier fileID) { diff --git a/ws2012/P2P/uebungen/11/src/node/UDPHandler.java b/ws2012/P2P/uebungen/11/src/node/UDPHandler.java index 249ccc1b..93ebff8e 100644 --- a/ws2012/P2P/uebungen/11/src/node/UDPHandler.java +++ b/ws2012/P2P/uebungen/11/src/node/UDPHandler.java @@ -196,6 +196,7 @@ public class UDPHandler implements Runnable { private void receiveFoundValue(NodeIdentifier fromID, Identifier rpcID) { Identifier idToFind = getIDFromBuffer(); + node.lastlookup = fromID; // TODO Auto-generated method stub // Node kontaktieren, damit Datei gesendet werden kann. @@ -254,7 +255,7 @@ public class UDPHandler implements Runnable { //TODO Reihenfolge!!! file += chunklist.get(fid).get(i); } - //node.store(fid); + node.store(fid); node.storeData(fid, file); chunklist.remove(fid); LOGGER.log(Level.INFO,"FILE DATA: "+file);