package pl.edu.agh.adhoc;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.SocketException;
import pl.edu.agh.jsonrpc.RawDataSocket;
public class PrintAdHocSocket implements RawDataSocket {
private final InputStream in;
private final OutputStream out;
private boolean opened = true;
private String name;
public PrintAdHocSocket(String name, InputStream in, OutputStream out) {
this.in = in;
this.out = out;
this.name = name;
}
@Override
public void sendData(byte[] data) throws IOException {
System.out.println(name + " sending:" + new String(data));
out.write(data);
out.flush();
}
@Override
public byte[] receiveData() throws IOException {
byte[] buffer = new byte[AdHocBroadcastSocket.RECEIVE_BUFFER_SIZE];
in.read(buffer);
System.out.println(name + " received:" + (buffer != null ? new String(buffer) : "null"));
return buffer;
}
@Override
public boolean isOpened() {
return opened;
}
@Override
public void close() {
System.out.println(name + " closing socket");
try {
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
opened = false;
}
@Override
public void rebind() throws SocketException {
}
}