-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDBServer.java
More file actions
61 lines (55 loc) · 2.05 KB
/
DBServer.java
File metadata and controls
61 lines (55 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import DBEngine.DBCommandHandler;
import DBEngine.DBStorage;
import DBExceptions.DBException;
import java.io.*;
import java.net.*;
/* The default folder is called fileSystem and resides in the same directory as /src */
class DBServer
{
final static char EOT = 4;
static DBStorage storage;
public DBServer(int portNumber)
{
try {
storage = new DBStorage();
storage.rootStorageInit();
ServerSocket serverSocket = new ServerSocket(portNumber);
System.out.println("Server Listening");
while(true) processNextConnection(serverSocket);
} catch(IOException ioe) {
System.err.println(ioe);
}
}
private void processNextConnection(ServerSocket serverSocket)
{
try {
Socket socket = serverSocket.accept();
BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter socketWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
System.out.println("Connection Established");
while(true) processNextCommand(socketReader, socketWriter);
} catch(IOException ioe) {
System.err.println(ioe);
} catch(NullPointerException npe) {
System.out.println("Connection Lost");
}
}
private void processNextCommand(BufferedReader socketReader, BufferedWriter socketWriter) throws IOException, NullPointerException
{
String incomingCommand = socketReader.readLine();
try{
DBCommandHandler handler = new DBCommandHandler(incomingCommand);
socketWriter.write(handler.handleQuery());
} catch(DBException dbe) {
socketWriter.write(dbe.toString());
} catch(IOException ioe) {
socketWriter.write("[ERROR]: " + ioe.toString());
}
socketWriter.write("\n" + EOT + "\n");
socketWriter.flush();
}
public static void main(String args[])
{
DBServer server = new DBServer(8888);
}
}