diff options
author | dor <dor1_b@walla.com> | 2013-11-30 14:07:09 +0200 |
---|---|---|
committer | dor <dor1_b@walla.com> | 2013-11-30 14:07:09 +0200 |
commit | cc73f7814f82232ec09fb4849e28e8976ee6afae (patch) | |
tree | c9a096a5de431438c5ab17d0d9ef7b68c3aafba8 /src/Server/Connection.java | |
parent | 4c305cfd7f627f43fec52b5ebd0f6d3a40286589 (diff) |
Making parsedline object
Diffstat (limited to 'src/Server/Connection.java')
-rw-r--r-- | src/Server/Connection.java | 81 |
1 files changed, 56 insertions, 25 deletions
diff --git a/src/Server/Connection.java b/src/Server/Connection.java index d232616..94853e1 100644 --- a/src/Server/Connection.java +++ b/src/Server/Connection.java @@ -6,65 +6,96 @@ import java.io.DataInputStream; import java.io.IOException; import java.io.OutputStreamWriter; -public class Connection extends Thread +class ParsedLine { - private Socket soc; + String line; + String command; + String args; - public Connection (Socket soc) + public ParsedLine(String line) { + this.line = line; + String[] parsedLine = this.line.split("[ \t]+", 2); + if (parsedLine.length > 1) + this.args = parsedLine[1]; + else + this.args = ""; - this.soc = soc; + if (parsedLine.length > 0) + this.command = parsedLine[0]; + else + this.command = ""; } - - private static String[] parseLine(String line) + public String getCommand() { - String[] parsedLine = line.split("[ \t]+", 2); - return parsedLine; - + return this.command; } + public String getArgs() + { + return this.args; + } +} + +public class Connection extends Thread +{ + private Socket soc; + + public Connection(Socket soc) + { + + this.soc = soc; + } + @SuppressWarnings("deprecation") - public void run () + public void run() { try { Client client; CommandsTable commandsTable = new CommandsTable(); - + DataInputStream input = new DataInputStream(soc.getInputStream()); OutputStreamWriter outTemp = new OutputStreamWriter(soc.getOutputStream()); BufferedWriter output = new BufferedWriter(outTemp); client = new Client(soc, output); - + while (true) { - String[] parsedLine; - String line ; - - try { + ParsedLine parsedLine; + String line; + + try + { line = input.readLine(); // FIXME: more then 1 line - } catch (java.net.SocketException e) { + } catch (java.net.SocketException e) + { break; // connection was lost / disconnected } - if (line == null) { + if (line == null) + { System.err.println("Got null line"); soc.close(); break; } - parsedLine = parseLine(line); - commandsTable.runCommand(client, parsedLine[0], parsedLine[1]); - line = soc.getPort() + ": <" + line + ">, command: <" + parsedLine[0] + ">, args: <" + parsedLine[1] + ">."; - System.out.println(line); - + parsedLine = new ParsedLine(line); + String s = soc.getPort() + ": <" + line + ">"; + System.out.println(s); + + s = soc.getPort() + ": <" + line + ">, command: <" + parsedLine.getCommand() + ">, args: <" + parsedLine.getArgs() + ">."; + commandsTable.runCommand(client, parsedLine.getCommand(), parsedLine.getArgs()); + System.out.println(s); // System.out.println("Done"); } } catch (IOException e) { if (soc != null) - try { + try + { soc.close(); - } catch (IOException e1) { + } catch (IOException e1) + { e1.printStackTrace(); } e.printStackTrace(); |