X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=iotjava%2Fiotruntime%2FIoTTCP.java;h=f67c4d3d801e86161dcfc9a920468bbcb28d8554;hb=8587d5dae9491656de998fc4dde0d4adc38ef3b9;hp=ada53bd310fa14ca1e4d99dafe96939cf91888a9;hpb=612e0a2208677f14c86063d7354e5aa9eaea2099;p=iot2.git diff --git a/iotjava/iotruntime/IoTTCP.java b/iotjava/iotruntime/IoTTCP.java index ada53bd..f67c4d3 100644 --- a/iotjava/iotruntime/IoTTCP.java +++ b/iotjava/iotruntime/IoTTCP.java @@ -6,6 +6,7 @@ import java.net.UnknownHostException; import java.net.SocketException; import java.net.Socket; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.ServerSocket; import java.io.InputStream; import java.io.OutputStream; @@ -30,10 +31,15 @@ public final class IoTTCP { protected IoTTCP(Socket _socket) { socket = _socket; } - - /** - * Class constructor + + /** + * Class constructor - no binding at first */ + public IoTTCP() { + socket = new Socket(); + } + + public IoTTCP(IoTDeviceAddress iotDevAdd) throws UnknownHostException, IOException { String strHostAddress = iotDevAdd.getHostAddress(); @@ -42,6 +48,22 @@ public final class IoTTCP { socket = new Socket(strHostAddress, iDstPort, InetAddress.getLocalHost(), iSrcPort); } + + /** + * bindAndConnect() method + */ + public void bindAndConnect(IoTDeviceAddress iotDevAdd, boolean bindToLocal) throws UnknownHostException, IOException { + + String strHostAddress = iotDevAdd.getHostAddress(); + int iDstPort = iotDevAdd.getDestinationPortNumber(); + + // Check if we need to bind to a specific port locally + if (bindToLocal) { + int iSrcPort = iotDevAdd.getSourcePortNumber(); + socket.bind(new InetSocketAddress(InetAddress.getLocalHost(), iSrcPort)); + } + socket.connect(new InetSocketAddress(strHostAddress, iDstPort)); + } /** * getInputStream() method