summaryrefslogtreecommitdiff
path: root/src/Server/Connection.java
diff options
context:
space:
mode:
authordor <dor1_b@walla.com>2013-11-30 14:07:09 +0200
committerdor <dor1_b@walla.com>2013-11-30 14:07:09 +0200
commitcc73f7814f82232ec09fb4849e28e8976ee6afae (patch)
treec9a096a5de431438c5ab17d0d9ef7b68c3aafba8 /src/Server/Connection.java
parent4c305cfd7f627f43fec52b5ebd0f6d3a40286589 (diff)
Making parsedline object
Diffstat (limited to 'src/Server/Connection.java')
-rw-r--r--src/Server/Connection.java81
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();