/**
*
*/
package net.jsunit;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class ClientSideConnection extends Thread {
private MessageReceiver receiver;
private final int port;
private ServerSocket serverSocket;
private Socket socket;
private BufferedReader reader;
private PrintWriter writer;
private boolean running;
public ClientSideConnection(MessageReceiver receiver, int port) {
this.port = port;
this.receiver = receiver;
}
public void run() {
try {
serverSocket = new ServerSocket(port);
socket = serverSocket.accept();
reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"));
String message;
running = true;
while (running && reader != null && (message = reader.readLine()) != null)
receiver.messageReceived(message);
} catch (Exception e) {
throw new RuntimeException(e);
}
shutdown();
}
public boolean isRunning() {
return running;
}
public void shutdown() {
try {
if (serverSocket != null)
serverSocket.close();
} catch (IOException e) {
}
running = false;
}
public void sendMessage(String message) {
writer.println(message);
writer.flush();
}
}