package tr.gov.ulakbim.jDenetX.streams.net;
/**
* Created by IntelliJ IDEA.
* User: caglar
* Date: Sep 20, 2010
* Time: 3:05:31 PM
* To change this template use File | Settings | File Templates.
*/
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.*;
/**
* @author caglar
*/
public class UDPDataSender {
private String HostName = "localhost";
private int RemotePort = 4000;
private InetAddress RemoteAddr = null;
DatagramSocket Sock = null;
SocketAddress SockAddr = null;
public UDPDataSender() {
}
public UDPDataSender(InetAddress remoteAddr, int remotePort) {
RemoteAddr = remoteAddr;
RemotePort = remotePort;
SockAddr = new InetSocketAddress(remoteAddr, remotePort);
}
public UDPDataSender(String host, int remotePort) {
HostName = host;
RemotePort = remotePort;
SockAddr = new InetSocketAddress(host, remotePort);
}
public void startSocket() throws SocketException {
if (SockAddr != null) {
Sock = new DatagramSocket();
} else {
throw new NullPointerException("SockAddr can't be null for socket binding!");
}
}
public void closeSocket() {
Sock.close();
}
public void sendMessage(String message) throws IOException {
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
PrintStream pOut = new PrintStream(bOut);
pOut.print(message);
//convert printstrema to byte array
byte[] bArray = bOut.toByteArray();
//Create a datagram packet, containing a maximum buffer of 256 bytes
DatagramPacket packet = new DatagramPacket(bArray, bArray.length);
packet.setSocketAddress(SockAddr);
Sock.send(packet);
}
}