public static void main(String args[]) { Bandwidth np; boolean sending = false; if (args.length != 4) usage(); if (args[0].equals("send")) sending = true; MSG_SIZE = Integer.decode(args[2]).intValue(); WINDOW_SIZE = Integer.decode(args[3]).intValue(); try { SandstormConfig cfg = new SandstormConfig(); if (USE_NIO) cfg.putString("global.aSocket.provider", "NIO"); Sandstorm ss = new Sandstorm(cfg); System.err.println( "Bandwidth: message size=" + MSG_SIZE + ", burst size=" + WINDOW_SIZE + ", rx block=" + BLOCKING_DEQUEUE); np = new Bandwidth(args[1], sending); np.setup(); np.doIt(); System.exit(0); } catch (Exception e) { if (VERBOSE) System.err.println("Bandwidth.main() got exception: " + e); if (VERBOSE) e.printStackTrace(); } }
private void doCatcher() { try { GnutellaCatcher catcher = new GnutellaCatcher(mgr, gs); if (SERVER_HOSTNAME != null) { catcher.doCatch(CATCHER_CONNECTIONS, SERVER_HOSTNAME, GnutellaConst.DEFAULT_GNUTELLA_PORT); } else { catcher.doCatch(CATCHER_CONNECTIONS); } } catch (Exception e) { System.err.println("Got exception in doCatcher: " + e); e.printStackTrace(); } }
/** The main event handling code. */ public void handleEvent(QueueElementIF item) { try { if (DEBUG) System.err.println("**** GOT: " + item); if (item instanceof GnutellaPingPacket) { GnutellaPingPacket ping = (GnutellaPingPacket) item; if (VERBOSE) System.err.println("-- Got ping: " + ping); if (ROUTE_PACKETS) { if (rememberPacket(ping)) { forwardPacketToAll(ping); } } if (SEND_PONGS) { GnutellaPongPacket pong = new GnutellaPongPacket(ping.getGUID(), NUM_FILES, NUM_KB); if (VERBOSE) System.err.println("-- Sending pong to: " + ping.getConnection()); ping.getConnection().enqueue_lossy(pong); } } else if (item instanceof GnutellaQueryPacket) { GnutellaQueryPacket query = (GnutellaQueryPacket) item; if (VERBOSE) System.err.println("-- Got query: " + query.getSearchTerm()); if (ROUTE_PACKETS) { if (rememberPacket(query)) { forwardPacketToAll(query); } } } else if (item instanceof GnutellaPongPacket) { GnutellaPongPacket pong = (GnutellaPongPacket) item; if (VERBOSE) System.err.println("-- Got pong: " + pong); if (ROUTE_PACKETS) forwardPacket(pong); } else if (item instanceof GnutellaQueryHitsPacket) { GnutellaQueryHitsPacket hits = (GnutellaQueryHitsPacket) item; if (VERBOSE) System.err.println("-- Got hits: " + hits); if (ROUTE_PACKETS) forwardPacket(hits); } else if (item instanceof GnutellaPushPacket) { if (VERBOSE) System.err.println("-- Dropping push packet (unimplemented)"); } else if (item instanceof GnutellaConnection) { if (VERBOSE) System.err.println("-- New connection: " + item); num_connections++; } else if (item instanceof SinkClosedEvent) { if (VERBOSE) System.err.println("-- Connection closed: " + item); num_connections--; SinkClosedEvent sce = (SinkClosedEvent) item; if ((num_connections <= MIN_CONNECTIONS) && DO_CATCHER) doCatcher(); } else if (item instanceof SinkCloggedEvent) { if (VERBOSE) System.err.println("-- Connection clogged: " + item); SinkCloggedEvent clogged = (SinkCloggedEvent) item; // Close down clogged connections GnutellaConnection gc = (GnutellaConnection) clogged.sink; System.err.println("GL: Closing clogged connection " + gc); gc.close(mySink); } else if (item instanceof timerEvent) { doTimer((timerEvent) item); } } catch (Exception e) { System.err.println("WORKER GOT EXCEPTION: " + e.getMessage()); e.printStackTrace(); } }