public void run() { Socket sock = null; try { int code = StreamTokenizer.TT_EOL; FileReader reader = new FileReader(filename); StreamTokenizer tokenizer = new StreamTokenizer(reader); tokenizer.ordinaryChars('0', '9'); tokenizer.wordChars('0', '9'); tokenizer.slashSlashComments(true); System.out.println("Connecting to socket 10576."); try { sock = new Socket("127.0.0.1", 10576); System.out.println("Connection to socket 10576 established."); } catch (Exception e) { System.out.println( "Inputting packets from file must be done while running Tossim with the -ri option"); System.exit(-1); } DataOutputStream output = new DataOutputStream(sock.getOutputStream()); while (true) { code = tokenizer.nextToken(); if (code == tokenizer.TT_EOF) { break; } else if (code == StreamTokenizer.TT_EOL) { } else if (code == StreamTokenizer.TT_WORD) { String word = tokenizer.sval; long lval = Long.parseLong(word); code = tokenizer.nextToken(); if (code != StreamTokenizer.TT_WORD) { break; } word = tokenizer.sval; short sval = Short.parseShort(word); byte[] data = new byte[36]; for (int i = 0; i < 36; i++) { code = tokenizer.nextToken(); if (code != StreamTokenizer.TT_WORD) { break; } String datum = tokenizer.sval; try { data[i] = (byte) (Integer.parseInt(datum, 16) & 0xff); } catch (NumberFormatException e) { System.out.println(e); System.out.println(datum); } } output.writeLong(lval); output.writeShort(sval); output.write(data); } else if (code == StreamTokenizer.TT_NUMBER) { } } } catch (Exception exception) { System.err.println("Exception thrown."); exception.printStackTrace(); } finally { try { sock.close(); } catch (Exception e) { } } /// ServerSocket server = new ServerSocket(10576, 1); // System.out.println("Waiting on socket 10576."); // Socket sock = server.accept(); // System.out.println("Accepted connection from " + sock); // DataOutputStream input = new DataOutputStream(sock.getOutputStream()); }