/***************************************************************************
Clinical Named Entity Recognizer and Normalizer(Clinical NERC), (v0.1).
Copyright (C) 2013 Azad Dehghan
Contact: a.dehghan@manchester.ac.uk
*****************************************************************************/
package main;
import java.io.* ;
import java.net.* ;
import classification.MappingPipeline;
class SocketServer {
@SuppressWarnings("resource")
public static void startServer(int port, Boolean nercFlag) throws IOException
{
final int p = port;
ServerSocket listener = new ServerSocket(p);
System.out.println("Server: NERC V0.1 is running on port: " + port);
// Listen for clients ....
while (true)
{
Socket client = listener.accept();
new SessionHandler(client, nercFlag).start();
}
}
}
class SessionHandler extends Thread {
private BufferedReader in ;
private PrintWriter out ;
private Socket client ;
private Boolean nercFlag;
SessionHandler(Socket s, Boolean nercFlag) {
this.client = s ;
this.nercFlag = nercFlag;
}
public void run() {
MLPipeline p = new MLPipeline(); //N.B.
MappingPipeline mp = null;
try {
mp = new MappingPipeline();
} catch (MalformedURLException e1) {
System.err.println("SessionHandler.run(): " + e1.getMessage());
}
try {
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(client.getOutputStream(), true);
String x = null;
while((x = in.readLine()) != null && !x.equals("quit();")) {
out.println(Logic.opt1(x, p, mp, nercFlag));
}
} catch (Exception e) {
System.out.println("Server error " + e);
}
try {
in.close();
out.close();
client.close() ;
} catch (Exception e)
{
System.err.println(e.getMessage());
}
}
}