DasherJava / src / dasherJava / core / output / SocketOutput.java
SocketOutput.java
Raw
package dasherJava.core.output;

import java.io.BufferedWriter;
import java.io.IOException;

import dasherJava.core.network.SingleSocketConnection;

public class SocketOutput {
	
	private final SingleSocketConnection singleSocketConnection;
	
	public SocketOutput(int port) {
		singleSocketConnection=new SingleSocketConnection("SocketOutput", port);
	}
	
	public void terminate() {
		singleSocketConnection.terminate();
	}
	
	public void sendString(String s, boolean suppressNewline) {
		BufferedWriter writer = singleSocketConnection.getCurrentWriter();
		if (writer==null) return;
		try {
			writer.write(s, 0, s.length());
			if (!suppressNewline) writer.write('\n'); //write '\n' as defined, not platform-specific line separator
			writer.flush();
		} catch (IOException ex) {
			System.out.println("SocketOutput connection closed: IOException: "+ex.getMessage());
			singleSocketConnection.closeCurrentConnection();
		}
	}
}